Nemo: A Low-Write-Amplification Cache for Tiny Objects on Log-Structured Flash Devices
This addresses performance issues in storage systems using flash caches for tiny objects, but it is incremental as it builds on existing set-associative designs with specific optimizations.
The paper tackled high write amplification in flash caches for tiny-object workloads by proposing Nemo, a set-associative cache design that reduces application-level write amplification through increased hash collision probability, achieving low write amplification, high memory efficiency, and low miss ratio in experiments.
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.