Design and performance of a general-purpose software cache
Abstract
This paper describes a General-Purpose Software cache (GPS cache) which can improve the performance of many applications including Web servers and databases. It can service several hundred thousand cache hits per second on a uniprocessor. When used to cache data for a Web server accelerator, the overhead due to the GPS cache was an insignificant factor in the overall performance of the system. The GPS cache can store objects in memory, on disk, or both. The cache uses a new algorithm for managing expiration times of cached objects which is more efficient than previous ones. The GPS cache uses Data Update Propagation (DUP) to invalidate complex objects which is crucial for caching and maintaining updated copies of dynamic Web pages. Transactions can be logged using different buffering mechanisms in order to provide a balance between efficiency and currency of transaction log files. The GPS cache provides API functions which allow applications to directly manipulate its contents.