Search papers, labs, and topics across Lattice.
This paper introduces Nemo, a set-associative flash cache design optimized for tiny-object workloads on log-structured flash devices. Nemo increases hash collision probability to improve set fill rate, reducing application-level write amplification, and uses a bloom filter-based indexing mechanism to minimize memory overhead. Experiments demonstrate that Nemo achieves low write amplification, high memory efficiency, and low miss ratio simultaneously, outperforming existing flash cache designs.
By strategically increasing hash collisions, Nemo slashes write amplification in flash caches for tiny objects, a persistent bottleneck even with advanced SSDs.
Modern storage systems predominantly use flash-based SSDs as a cache layer due to their favorable performance and cost efficiency. However, in tiny-object workloads, existing flash cache designs still suffer from high write amplification. Even when deploying advanced log-structured flash devices (e.g., Zoned Namespace SSDs and Flexible Data Placement SSDs) with low device-level write amplification, application-level write amplification still dominates. This work proposes Nemo, which enhances set-associative cache design by increasing hash collision probability to improve set fill rate, thereby reducing application-level write amplification. To satisfy caching requirements, including high memory efficiency and low miss ratio, we introduce a bloom filter-based indexing mechanism that significantly reduces memory overhead, and adopt a hybrid hotness tracking to achieve low miss ratio without losing memory efficiency. Experimental results show that Nemo simultaneously achieves three key objectives for flash cache: low write amplification, high memory efficiency, and low miss ratio.