[soch08] Gokul Soundararajan, Jin Chen, Mohamed Sharaf, and Cristiana Amza. Dynamic partitioning of the cache hierarchy in shared data centers. In Proc. Int'l Conference on Very Large Data Bases (VLDB'08), August 2008. [ bib | .pdf ]
[yafa08] Gala Yadgar, Michael Factor, Kai Li, and Assaf Schuster. Mc2: Multiple clients on a multilevel cache. In Proc. Int'l Conference on Distributed Computing Systems (ICDCS'08), June 2008. [ bib | .pdf | .pdf ]
Extends Karma ([yafa07]) two a two-tier scenario in which multiple clients which share data also share a second-tier cache. Space is partitioned among clients, with one additional partition used for shared data. Within each partition, space is managed using Karma.
[gama08] Charles Garrod, Amit Manjhi, Anastasia Ailamaki, Bruce Maggs, Todd Mowry, Christopher Olston, and Anthony Tomasic. Scalable query result caching for web applications. Proc. of the VLDB Endowment, 1(1):550-561, 2008. [ bib | DOI | .pdf ]
[gill08] Binny Gill. On multi-level exclusive caching: Offline optimality and why promotions are better than demotions. In Proc. USENIX Conference on File and Storage Technologies (FAST'08), pages 49-65, 2008. [ bib | .pdf | .pdf ]
Includes lower and upper bounds on optimal off-line performance for multi-level caches. Proposes a scheme called PROMOTE for managing multi-tier caches. As a requested page is passed up through the cache tiers, each cache decides whether it will be responsible for caching the page. Once a cache has decided to cache the page, it notifies the higher level caches of this by attaching a flag to the page as it is passed up through tiers. The higher level caches then do not cache the page. This enforces exclusiveness among the caches. Pages that are repeatedly requested should tend to migrate to higher level caches. Behaviour on writes is not specified, e.g, can a write affect which cache is responsible for a particular page. This policy requires modification of the caching policies at every tier, as each tier must abide by caching decisions made at lower tiers, and must inform upper tiers of its decisions.
[yafa07] Gala Yadgar, Michael Factor, and Assaf Schuster. Karma: Know-it-all replacement for a multilevel cache. In Proc. USENIX Conference on File and Storage Technologies (FAST'07), February 2007. [ bib | .pdf | .pdf ]
Assumes caches support read, read-save, and demote. Requires that blocks by grouped into ranges by the application. Application must also specify the frequency of access and access pattern for each range. Each range is assigned some space in some cache in the hierarchy, and each range's space is then managed using a separate replacement policy. Experiments used PostgreSQL explain to generate range and access pattern hints - however, explain data covers the situation before the DBMS cache.
[fasc06] Michael Factor, Assaf Schuster, and Gala Yadgar. Multilevel cache management based on application hints. Technical Report CS-2006-02, Technion Computer Science Department, 2006. [ bib | .pdf | .pdf ]
[chzh05] Zhifeng Chen, Yan Zhang, Yuanyuan Zhou, Heidi Scott, and Berni Schiefer. Empirical evaluation of multi-level buffer cache collaboration for storage systems. In Proceedings of the International Conference on Measurements and Modeling of Computer Systems (SIGMETRICS'05), pages 145-156, 2005. [ bib | .pdf ]
Compares “hierarchically aware” approachs to “aggressively-collaborative” approaches. The former are transparent to the storage client (e.g., the DBMS), the latter are not. Aggressively-collaborative approaches include two types of hint-passing: access patterns and application semantics. Example of semantic hint is a hint that a block will be read only one time. Even more aggressive is content-aware caching, where the caches try explicitly to avoid duplication. Also considers some additional optimizations: Quick eviction of duplicated blocks (DU) removes pages from the buffer when they are read, Semantics-Directed Caching (SE) uses “importance” values from the storage client (in an ill-specified way) to affect buffering at the storage server. General conclusion is that the agressively-collaborative approaches do not help much compared to the hierarchically-aware approaches.
[fitz04] Brad Fitzpatrick. Distributed caching with memcached. Linux Journal, 2004(124):5, August 2004. [ bib | http | .html ]
[zhch04] Yuanyuan Zhou, Zhifeng Chen, and Kai Li. Second-level buffer cache management. IEEE Transactions on Parallel and Distributed Systems, 15(7), July 2004. [ bib | .ps ]
Presents a trace-based characterization of access patterns for second-tier (L2) buffer caches, noting that L2 cache reference streams don't exhibit any small reuse distances. Presents the MQ algorithm for managing L2 cache. MQ uses multiple LRU queues. Pages are promoted to higher queues according to frequency of reference. Replacements happen in low queues first. An aging mechanism is used to demote pages that cool down. Also describes so-called global replacement algorithms, in which the L2 cache is informed when replacements are made at L1. Evaluation is by trace-driven simulation and also by experiment with an storage system cache implementation.
[bamo04] S. Bansal and D. Modha. CAR: Clock with adaptive replacement. In Proc. of the 3nd USENIX Symposium on File and Storage Technologies (FAST'04), March 2004. [ bib | .pdf | .pdf ]
[bopl04] R. Bonilla-Lucas, Peter Plachta, Aamer Sachedina, Daniel Jiménez-González, Calisto Zuzarte, and Josep-Lluis Larriba-Pey. Characterization of the data access behavior for TPC-C traces. In Proc. IEEE International Symposium on Performance Analysis of Systems and Software, pages 115-122, March 2004. [ bib | .pdf ]
[jizh04] Song Jiang and Xiaodong Zhang. ULC: A file block placement and replacement protocol to effectively exploit hierarchical locality in multi-level buffer caches. In Proc. 24th International Conference on Distributed Computing Systems (ICDCS'04), pages 168-177, 2004. [ bib | .pdf ]
[chzh03] Zhifeng Chen, Yuanyuan Zhou, and Kai Li. Eviction-based cache placement for storage caches. In Proceedings of the USENIX 2003 Annual Technical Conference, pages 269-282, June 2003. [ bib | .pdf | .pdf ]
Eviction-based placement means that a page is loaded into the storage cache when it is evicted from the storage client's cache, as opposed to when it is requested by the client. Proposes tracking evictions transparently by monitoring the target addresses of read requests. Evicted pages are prefetched from disk into the storage system cache at the time of predicted eviction from the storage client cache.
[albo03] Mehmet Altinel, Christof Bornhovd, Sailesh Krishnamurthy, C. Mohan, Hamid Pirahesh, and Berthold Reinwald. Cache tables: Paving the way for an adaptive database cache. In Proc. International Conference on Very Large Data Bases, pages 718-729, 2003. [ bib | .pdf | .pdf ]
[medh03] Nimrod Megiddo and Dharmendra S. Modha. ARC: A self-tuning, low overhead replacement cache. In Proc. USENIX Conference on File and Storage Technology (FAST'03), 2003. [ bib | .pdf | .pdf ]
ARC maintains two LRU queues, one for pages that have been referenced once and one for pages that have been referenced more than once. For each queue, there is also a ghost queue that tracks additional pages. The sizes of the two queues are adjusted dynamically. A hit in the single-reference ghost queue causes the single-reference queue to grow. A hit in the multi-reference ghost queue causes the multi-referenced queue to grow.
[wowi02] Theodore M. Wong and John Wilkes. My cache or yours? making storage more exclusive. In USENIX Annual Technical Conference (USENIX 2002), pages 161-175, June 2002. [ bib | .pdf | .pdf ]
Notes that storage system caches are often LRU-based, and points out the multi-tier cache inclusion problem: that a second-tier LRU cache behind a first-tier LRU cache will contain many of the same pages as the first-tier cache. Defines a “demote” operation to deal with this problem. Demote sends to the second tier a block that has been evicted from the first tier. Argues that the cost of sending these blocks to the second tier is low because storage networks have lots of bandwidth. Also defines a “demote” buffer management policy for tier two. This puts blocks read by tier one at the LRU end of the buffer (like our +read-read policy) and puts blocks demoted by the first tier at the MRU end.
[aram02] Ismail Ari, Ahmed Amer, Robert Gramacy, Ethan L. Miller, Scott Brandt, and Darrell D. E. Long. ACME: Adaptive caching using multiple experts. In Workshop on Distributed Data and Structures 4 (WDAS), pages 143-158. Carleton Scientific, March 2002. [ bib | .pdf | .pdf ]
[mapo02] Patrick Martin, Wendy Powley, and Xiaoyi Xu. Configuring buffer pools in DB2 UDB. In Proc. CASCON, 2002. [ bib ]
[mali00] Patrick Martin, Hoi-Ying Li, Min Zheng, Keri Romanufa, and Wendy Powley. Dynamic reconfiguration algorithm: Dynamically tuning multiple buffer pools. In 11th International Conference on Database and Expert Systems Applications (DEXA), pages 92-101, 2000. [ bib | .pdf ]
[saha00] Prasenjit Sarkar and John H. Hartman. Hint-based cooperative caching. ACM Transactions on Computer Systems, 18(4):387-419, 2000. [ bib | .pdf ]
Describes a cooperative two-level caching system in which first-level caches may fetch blocks from other first-level caches. A hint is potentially inaccurate information about the locations of blocks in the first-level caches.
[phgo95] Vidyadhar Phalke and Bhaskarpillai Gopinath. An inter-reference gap model for temporal locality in program behavior. In Proceedings of the 1995 ACM SIGMETRICS Joint International Conference on Measurement and Modeling of Computer Systems, pages 291-300, 1995. [ bib | .pdf ]
[josh94] Theodore Johnson and Dennis Shasha. 2Q: A low overhead high performance buffer management replacement algorithm. In Proc. International Conference on Very Large Data Bases (VLDB'94), pages 439-450, 1994. [ bib | .PDF ]
[onon93] Elizabeth J. O'Neil, Patrick E. O'Neil, and Gerhard Weikum. The LRU-K page replacement algorithm for database disk buffering. In Proceedings of the ACM SIGMOD International Conference on Management of Data (SIGMOD'93), pages 297-306, 1993. [ bib | .pdf ]
[muho92] D. Muntz and P. Honeyman. Multi-level caching in distributed file systems - or - your cache ain't nuthin' but trash. In Proceedings of the USENIX Winter Conference, pages 305-313, January 1992. [ bib | .pdf ]
Simulation study of bi-level LRU caches for a distributed file system. Found that increasing client cache size quickly reduces the hit rate of the second tier cache.
[pazd91] Mark Palmer and Stanley Zdonik. Fido: A cache that learns to fetch. In Proc. Int'l Conference on Very Large Data Bases, 1991. [ bib | .PDF ]
[duha82] A. H. Duke, M. H. Hartung, J. D. Huntley, and F. J. Marschner. Buffered writing in a peripheral storage hierarchy. IBM Technical Disclosure Bulletin, 25(4):2075-2076, September 1982. [ bib ]
Describes a scheme for synchronizing writes in batches, rather than individually.
[bela66] L. A. Belady. A study of replacement algorithms for a virtual-storage computer. IBM Systems Journal, 5(2):78-101, 1966. [ bib | .pdf ]