[development] Drupal performance patches: call for action

Dries Buytaert dries.buytaert at gmail.com
Wed Aug 1 09:42:49 UTC 2007


Hello world,

I provided a list of what I believe are the top-6 most important
performance patches for Drupal 6 and drupal.org (which will run on
Drupal 6).  If you know people that want to help, please point them to
http://drupal.org/node/163216#comment-257631 or wherever the latest
version of that list continues to live on.

The slowest queries on drupal.org are the ones for (1) the tracker
page, (2) the forum blocks, (3) the forum topics' next/previous links
and (4) the search module.  Since we disabled most of those features,
drupal.org is again more usable.  Of course, we want to re-enable all
of those feature as soon as possible.

To make that happen, we need help from developers and database
experts. To provide some focus, I compiled a list of the 6 most
important performance patches that you can help with. I truly hope to
get some of these into Drupal 6, and to backport them to Drupal 5 so
we can use them on drupal.org until we upgrade drupal.org to Drupal 6.

Important note: these patches are still allowed to change the APIs in
Drupal 6, and are about the _only_ patches that can break our APIs
before Drupal 6 beta 1 is released.  This policy will hopefully help
us focus -- these issues is where all of our Drupal core action should
be.

So here is the list:

   1. http://drupal.org/node/147160 - Database replication: database
replication will help us distribute the load among multiple database
server. This will help us with (1), (2), (3), (4) and more. Without
this patch, we can't even take advantage of the extra hardware that
we're installing. Needless to say, this patch is critical. Some extra
background information and thoughts are available at
http://buytaert.net/scaling-with-mysql-replication.

   2. http://drupal.org/node/148849 - Merge {node_comment_statistics}
and {node_counter} into {node}: looking at the slow query log on
Drupal.org we have reasons to believe that this patch could help us
with (1) and (2) and (4). There are some reservations as well so we
need people to help benchmark this patch so we can weigh the
advantages and the disadvantages. After some good testing and
benchmarking, we should be able to drive this patch home.

   3. http://drupal.org/node/80951 - Block caching: being able to
cache expensive blocks would help us with (2) as it eliminates
expensive queries.

   4. http://drupal.org/node/105639 - Tracker query rewrite: would
help us with (1) because it rewrites an expensive query.

   5. http://drupal.org/node/146466 - Link handling in search module:
this patch reduces the complexity of the search module and will help
with (4). I helps performance and it makes for a better search.

   6. http://drupal.org/node/106559 - Path lookups: we're
brainstorming about how we could reduce the number of look ups
required for URL aliasing. I think we need to look at de-normalizing
the path alias table, but there are some other ideas that are being
proposed, measured and discussed.

There are likely to be more patches, but I'd like to start with those.
 It's more than enough work already, and it is better not to spread
ourselves too thin.  If you're convinced that there might be a more
important performance patch, you can work on that too.

I recommend that you bookmark these issues in your browser's toolbar
and that you ask you boss whether you can spend some time working on
these patches. ;)

Thanks,

-- 
Dries Buytaert :: http://buytaert.net/


More information about the development mailing list