sieve-eviction · research · also SIEVE

SIEVE cache eviction

SIEVE is a cache replacement policy that retains insertion order and uses a visited bit and a moving pointer to select an unvisited eviction victim.

Related Observatory article: SIEVE cache eviction on hesela.com

New entries start unvisited; a hit sets their bit without moving them. Eviction clears visited bits while advancing the pointer, leaving survivors in place instead of reinserting them with newcomers. [1]

The NSDI paper explicitly reports that SIEVE is not scan-resistant; some block-cache workloads perform worse than LRU. A web-cache result does not identify an SSD's internal policy. [2]

Relations

related
clock-replacement, lru-replacement, cache-pollution, cache-admission

Citations

  1. NSDI24-SIEVE author artifact, commit 0861f8261c37b8286a70449a1defb5a4749c72d2: Sieve.c, insertion and eviction operations. (accessed 2026-10-17)
  2. Zhang et al. SIEVE is Simpler than LRU: an Efficient Turn-Key Eviction Algorithm for Web Caches. NSDI 2024, sections 3, 4 and 7.2. (accessed 2026-10-17)

Further reading

  1. Hesela: SIEVE/CLOCK/LRU counterexamples, eight constructed libCacheSim 0.3.5 traces, not device measurements. (accessed 2026-10-17)

JSON: /data/terms/sieve-eviction.json