Last update on: 2011-07-25
Tim Starling investigated Wikimedia's low parser cache hit ratio and suggested to increase the parser cache size to reduce Apache CPU usage. After researching available options for disk-backed object caches, he selected EHcache and wrote a MediaWiki client for it. Our test deployments showed promising results, but also surfaced additional problems that we need to sort out.
Issues that arose during the testing of EHcache convinced Tim Starling to use another tool. His next trial will involve implementing a thin caching layer on top of a MySQL-based disk store. Implementation is planned to happen after the MediaWiki 1.17 release.
The deployment of a disk-backed object cache to increase the parser cache hit ratio was on hold in May, in favor of the 1.17 release work. It will be resumed in June.
A couple of deployment attempts were made last week with the MySQL-backed version of this system. They ran in production for a few hours, then tipped over due to table lock contention. Domas devised a workaround, which involves splitting the cache into several tables, which Tim implemented in MediaWiki. Tim plans to deploy the new version on July 11, sometime after 00:00 UTC (during business hours in Australia).
To improve the MySQL-based version of this system, Domas Mituzas suggested to split the cache into several tables, which Tim Starling implemented in MediaWiki. The system was then deployed on July 11th and the cache has been filling up since then, thus increasing the parser cache hit ratio from about 30% to 80%. Possible future steps include adding previous page revisions to the cache.
Chart of the parser cache hit ratio showing the effect of enabling the Disk-backed object cache.
Chart of the parser cache hit ratio showing cache filling up over the last two weeks.