[development] memcache

Gerhard Killesreiter gerhard at killesreiter.de
Tue Mar 6 22:01:33 UTC 2007

Steve Rude wrote:
> I don't want to hijack the file cache maintainer thread, so I am 
> starting my
> own thread about this since I have some questions.
> I did talk to Robert about this in January, and I have done extensive
> testing with his code.  His code patches core files all over the place in
> order to check memcache if there is a cached version available and then 
> load
> that first.  He has stated at http://drupal.org/project/memcache that "A 
> set
> of patches that can be applied selectively to Drupal to cache various
> objects for high performance. The patches are necessary and this cannot be
> avoided."
> However, if we are doing object level caching for nodes than we can cache a
> complete loaded node without the need to hit the database until a 
> node_save,
> until a new module is enabled or until the max life is hit.
> If the code in node_load hit the static variable $nodes first, then 
> secondly
> hit cache_get then we would not need to have a set of patches, and this
> could be an option in the performance settings.  You could then allow the
> pluggable cache.inc that I just realized has been merged into HEAD (As of
> January) to handle storage.  This would only take a small change to the 
> core
> modules in a few places.

When I first suggested that node objects should be cachable I wasn't 
able to get sufficient support for this and had to accept the static 
cache as a minor solution. However, now that there are so many very 
popular Drupal sites, I think that the forces that be might reconsider 
their position. ;)

The only problem is that some modules (notably poll.module) do user 
specific stuff in the nodeapi load hook. I see no problem to move this 
to the view hook instead. I already have discussed this with Steven in 
Brussels and he agreed on this.

I'd sure like to have node object caching for drupal.org.

> According to Dries testing on his website, he has seen Drupal into the 80+
> Requests per second area (ref.
> http://buytaert.net/drupal-webserver-configurations-compared).  With 
> some of
> the testing I have done with caching, I have seen it go as high as 500-700
> Requests per second.
> In my testing out of the box I have seen Drupal do about 10 requests per
> second, with normal caching about 100 requests per second and with
> aggressive caching as high as 250 request per second.

You should not confuse the page caching we have now (regardless if 
aggressive or not) with the node object caching you want to add. The 
node object caching is rather similar to the menu tree caching as it 
caches objects for both anonymous and authenticated users whereas the 
page cache is only for anon users.


More information about the development mailing list