Hi all. I've been working on a new project called Advcache (Advanced Cache) which is a package of caching patches (and a controller module) for Drupal 5. It allows you to cache many things which don't get cached normally, and is intended to increase the performance of Drupal sites, especially for authenticated users. Current caching targets include nodes, comments, taxonomy (trees, terms, vocabularies and node-term bindings), paths, search queries, and forums. Some initial primitive benchmarking with ab on my MacBook shows that this group of patches can make Drupal up to 5 times faster for authenticated users. I would love it, however, if one or more people could test these patches and do some benchmarking on different machines and different platforms. Of course, it is also helpful to have people read the code and find bugs!
Now, for the real goodie: this plays super nice with the memcache module I also recently released. The same round of primitive testing that I did showed that using advcache+memcache on my MacBook took me from 4-5 requests per second (authenticated user) to the 110-115 requests per second range. That is a similar number to what I achieve for anonymous users using aggressive caching. Using only core modules, I had around 220 database queries for the front page, and got this down to 23 queries with all of the caching patches and memcache enabled. If you're ambitious and want to try benchmarking these modules together, that would be awesome. Don't hesitate to contact me if you run into any problems setting it all up.

Comments
Going to try this weekend
I'm going to try to get to testing these for you this weekend.
Jonathan
Going to look at adding to basic profile
I've asked Richard to look at making this part of our basic profile.
Make sure to repeat often
Make sure to repeat often and loudly that the forum and taxonomy patches violate db_sql_rewrite for taxonomy queries. Fortunately, not many modules use these, but I imagine that would be especially problematic considering how many use cases the Bryght profile has to support.
Excellent.
I believe the path cache and taxonomy cache modules will be invaluable. I will test immediately...
Slight problem...
... the documentation says that as well as activating the module itself, you need to apply the specific caching patches you want to use. How exactly do you do this?
Assuming your drupal site is
Assuming your drupal site is in /drupal5, your advcache module is in /drupal5/sites/all/modules/advcache, and that you have the patch tool (Mac, Linux, or Windows with Cygwin):
cd /drupal5patch < sites/all/modules/advcache/all_patches.patch
It may ask you to type the paths to some or all of the files it is patching, but this should be self-explanatory. See, not so hard!
PS: patch -R < sites/all/modules/advcache/all_patches.patch will revert the patch when you're done with it.
Yea, all set
Got systems built, will be doing load testing tomorrow. Just have to clean up from the week today.
Will post the results!
Some benchmarks here
Some benchmarks I did tonight on advcache and memcached benchmarks with Drupal.
Does not cover authenticated users though, but really nice performance gains, mainly from memcache.inc and aggressive cache mode. advcache does not seem to have a lot of impact for anonymous users. With the need to patch core, this is less appealing as well.
We have a site that will definitely use memcache once they move to 5.1. I hope that in the near future I can get a copy of that large site (we have the test enviroment on 5.1 already), which uses lots of aliases, and see if there is a difference.
Great work Robert! +100.
Drupal development and consulting 2bits.com
Personal Baheyeldin
Drupal performance tuning, development, customization and consulting: 2bits.com, Inc..
Personal blog: Baheyeldin.com.
Thanks for the benchmarking
Thanks for the benchmarking and the article. Hopefully you'll have a chance to profile the effect on authenticated users, too. Despite the need to patch core, I see advcache as the bigger achievement because it improves the authenticated user experience and doesn't require the installation of new software, which means that people on shared hosting can use it.
Redoing the benchmark
Yes, I understand the different audience for memcache and advcache. I have not gotten to the authenticated users benchmarking scenario yet. My focus was on memcache, since I need it in a dedicated hosting environment.
Th bad news is that after I published the article, I found that the Drupal install was not pristine. So I redid the benchmarks quickly, or a new default install and found out some surprising results, in a nutshell: not much difference between default db caching and memcache (for anonymous users).
So, I unpublished the results while I investigate the issue more. Also, I am trying with a copy of a large site with lots of data.
Meanwhile, I found was that a plain Drupal 5.1 install (not current DRUPAL-5 tag) fails to cleanly apply the patch. Here is the output:
$ patch --dry-run -p0 < sites/all/modules/advcache/all_patches.patchpatching file includes/common.inc
Hunk #1 succeeded at 1283 (offset 1 line).
patching file includes/path.inc
patching file modules/comment/comment.module
patching file modules/node/node.module
Hunk #1 succeeded at 484 (offset -6 lines).
Hunk #2 succeeded at 494 (offset -6 lines).
Hunk #3 succeeded at 543 (offset -6 lines).
Hunk #4 succeeded at 2422 (offset 10 lines).
patching file modules/path/path.module
patching file modules/search/search.module
patching file modules/taxonomy/taxonomy.module
Hunk #1 FAILED at 764.
Hunk #2 succeeded at 977 (offset -7 lines).
Hunk #3 succeeded at 1018 (offset -7 lines).
Hunk #4 succeeded at 1144 (offset -7 lines).
Hunk #5 succeeded at 1176 (offset -7 lines).
1 out of 5 hunks FAILED -- saving rejects to file modules/taxonomy/taxonomy.module.rej
I can't upgrade that site to DRUPAL-5 yet.
Drupal development and consulting 2bits.com
Personal Baheyeldin
Drupal performance tuning, development, customization and consulting: 2bits.com, Inc..
Personal blog: Baheyeldin.com.
Redone
Robert,
I redid the benchmark using a database form a live site with a busy front page. The results are different.
Check it out once more.
Drupal development and consulting 2bits.com
Personal Baheyeldin
Drupal performance tuning, development, customization and consulting: 2bits.com, Inc..
Personal blog: Baheyeldin.com.