Jump to content

Cache stampede

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Crashie (talk | contribs) at 10:29, 4 June 2012 (add a reference (still need more / better references)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A cache stampede is a type of cascading failure that can occur when massively parallel computing systems with caching mechanisms come under very high load. This behaviour is sometimes also called dog-piling.

To see how cache stampedes can occur, consider a web server which uses memcached to cache rendered pages for some period of time, to ease the load on the system. Under particularly high load to a single URL, the system remains responsive so long as the resource remains cached, with requests simply being handled by accessing the cached copy, without carrying out the expensive rendering operation.

Under low load, cache misses will simply result in a single recalculation of the expensive rendering operation, and the system will then continue as before, with average load being kept very low because of the high cache hit rate.

However, under very heavy load, when the cached version of that page expires, there may be sufficient concurrency in the server farm that multiple threads of execution will all attempt to regenerate the content of that page simultaneously, since none of them know that the others are doing the same at the same time. If sufficiently high load is present, this may by itself be enough to bring about congestion collapse of the system via exhausting shared resources, preventing the page from ever being completely re-rendered and re-cached, as every attempt to do so will time out, thus reducing the cache hit rate to zero, and keeping the system continuously in congestion collapse as it attempts to regenerate the resource forever as long as the load remains present.

References

  • John Allspaw and Jesse Robins, Web Operations -- Keeping the Data on Time (O'Reilly, 2010) ISBN 978-1-449-37744-1