"Range as a Key" is the Key! Fast and Compact Cloud Block Store Index with RASK
Haoru Zhao, Mingkai Dong, Erci Xu, Zhongyu Wang, Haibo Chen
TL;DR
RASK tackles memory pressure in cloud block storage by shifting from per-block to range-based indexing. It combines ART-based internal nodes with log-structured, append-only leaves to natively index block ranges, backed by a two-stage GC, ablation-based search, and range-aware split/merge strategies to handle overlap and fragmentation. Evaluations on Alibaba Cloud, Tencent, Meta, and Google traces show memory reductions up to 98.9% and throughput gains up to 31x, with additional benefits when integrated into RocksDB for metadata services. The approach generalizes to other range-write-heavy systems such as flash caches and DFS metadata services, and the authors open-source the RASK implementation for broader adoption.
Abstract
In cloud block store, indexing is on the critical path of I/O operations and typically resides in memory. With the scaling of users and the emergence of denser storage media, the index has become a primary memory consumer, causing memory strain. Our extensive analysis of production traces reveals that write requests exhibit a strong tendency to target continuous block ranges in cloud storage systems. Thus, compared to current per-block indexing, our insight is that we should directly index block ranges (i.e., range-as-a-key) to save memory. In this paper, we propose RASK, a memory-efficient and high-performance tree-structured index that natively indexes ranges. While range-as-a-key offers the potential to save memory and improve performance, realizing this idea is challenging due to the range overlap and range fragmentation issues. To handle range overlap efficiently, RASK introduces the log-structured leaf, combined with range-tailored search and garbage collection. To reduce range fragmentation, RASK employs range-aware split and merge mechanisms. Our evaluations on four production traces show that RASK reduces memory footprint by up to 98.9% and increases throughput by up to 31.0x compared to ten state-of-the-art indexes.
