On Sunday, October 16, 2011, Cal Leeming [Simplicity Media Ltd] < [email protected]> wrote: > Hi Russell, > Thanks for the detailed response. It looks like both those solutions you pasted have already dealt with this functionality - so thank you for bringing these up. > Although it'd be really nice to see this in the core one day, is it worth me pursuing to try and have something like this looked at again, or would it be fighting a lost battle??
There is an old saying; there are only two hard problems in computer science - cache invalidation, naming things, and off-by-one errors. :-) The problem with #17 - and if you search the archives, it's well travelled territory - is that there isn't a single, obviously-correct-for-all-situations (or even -most-situations) answer for the cache invalidation problem. Any cache invalidation requires site-specific policies. And when you need site specific policies, that makes it difficult to provide generic solutions. I'm not going to say with 100% certainty that this will *never* get into core - on principle, query caching is obviously a useful technique. The issue is finding a solution that is appropriate for core. To be appropriate for inclusion in Django core, any candidate solution needs to be "clearly correct for the 90% case". Based on past discussions, I'm not convinced such a solution exists. The alternative is to provide in Django the infrastructure to make it easy to plug in a query cache. In this way, it would be the analog of multi-db. Multi-db requires a bunch of site specific policies too - that's why Django doesn't ship with any database routers. However, the core does contain the core functionality and extension points that allow you to define a router in user space. There are then third party libraries implementing common routing strategies, such as master/slave. Similarly, if anyone cares to propose a "core infrastructure layer" for query caching, *that* is something that might be suitable for inclusion in core. That said, evidence would seem to suggest that no such infrastructure is required - after all, there are already multiple third party libraries implementing query caching. Yours, Russ Magee %-) -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
