π€ AI Summary
This work addresses the I/O performance bottleneck in cloud block storage caused by the high memory overhead of traditional indexing structures. To this end, the authors propose RASK, the first tree-based index natively supporting βrange-as-keyβ semantics. RASK incorporates log-structured leaf nodes, range-customized search procedures, a range-aware split-and-merge mechanism, and a tailored garbage collection strategy to effectively mitigate range overlap and fragmentation. Experimental evaluation on four real-world production traces demonstrates that RASK substantially reduces memory consumption and improves throughput: compared against ten state-of-the-art indexes, it achieves up to a 98.9% reduction in memory overhead and up to a 31.0Γ increase in throughput.
π 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.