Table of Contents
Fetching ...

Nemo: A Low-Write-Amplification Cache for Tiny Objects on Log-Structured Flash Devices

Xufeng Yang, Tingting Tan, Jingxin Hu, Congming Gao, Mingyang Liu, Tianyang Jiang, Jian Chen, Linbo Long, Yina Lv, Jiwu Shu

TL;DR

Nemo is proposed, which enhances set-associative cache design by increasing hash collision probability to improve set fill rate, thereby reducing application-level write amplification and achieves three key objectives for flash cache: low write amplification, high memory efficiency, and low miss ratio.

Abstract

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.

Nemo: A Low-Write-Amplification Cache for Tiny Objects on Log-Structured Flash Devices

TL;DR

Nemo is proposed, which enhances set-associative cache design by increasing hash collision probability to improve set fill rate, thereby reducing application-level write amplification and achieves three key objectives for flash cache: low write amplification, high memory efficiency, and low miss ratio.

Abstract

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.
Paper Structure (36 sections, 12 equations, 19 figures, 6 tables)

This paper contains 36 sections, 12 equations, 19 figures, 6 tables.

Figures (19)

  • Figure 1: Application-level write amplification comparison. "S" denotes Set, "SG" denotes Set-Group.
  • Figure 2: Hierarchical cache.
  • Figure 3: Breakdown of write amplification in a hierarchical cache. "P0$\sim$P1" denotes 2 flash pages in the physical HLog. "S5$\sim$S6" appears twice, but there is only one physical instance, to illustrate the differing garbage collection triggering behaviors of FairyWREN (Case 3.2) and Kangaroo (Case 3.1).
  • Figure 4: Passive object migration.
  • Figure 5: CDF of two migrations.
  • ...and 14 more figures