Generic Design Patterns for Tunable and High-Performance SSD-Based Indexes
A number of data-intensive systems require using random hash-based indexes of various forms, e.g., hash-tables, Bloom filters, and locality sensitive hash tables. In this paper, the authors present general SSD optimization techniques that can be used to design a variety of such indexes while ensuring higher performance and easier tunability than specialized state-of-the-art approaches. They leverage two key SSD innovations: rearranging the data layout on the SSD to combine multiple read requests into one page read, and intelligent request reordering to exploit inherent parallelism in the architecture of SSDs. They build three different indexes using these techniques and conduct extensive studies showing their superior performance and flexibility.