The SIEVE cache eviction algorithm is a simple and efficient method for deciding what to keep in a cache and what to discard
It is designed to be both effective and straightforward, using only one queue and one pointer called "hand" to maintain the insertion order between objects. The algorithm tracks the visited/non-visited status of each object in the queue using a single bit and makes decisions based on this status. SIEVE has been shown to outperform state-of-the-art eviction algorithms in terms of efficiency, demonstrating significant reductions in miss ratio across diverse datasets.
However, it is important to note that SIEVE is not scan-resistant, particularly in block cache workloads, where it may show a higher miss ratio than LRU due to the lack of a ghost cache to track recently evicted items. Despite this limitation, SIEVE's performance and simplicity make it a compelling choice for many caching systems.