APEX: A High-Performance Learned Index on Persistent Memory

05/03/2021
by   Baotong Lu, et al.
0

The recently released persistent memory (PM) has been gaining popularity. PM offers high performance (still lower than DRAM), persistence, and is cheaper than DRAM. This opens up new possibilities for index design. Existing indexes on PM typically evolve traditional B+tree indexes. However, this is not the best choice. Recently proposed learned indexes use machine learning (ML) for data distribution-aware indexing and perform significantly better than B+Trees, but none support persistence and instant recovery. In this paper, we propose a new learned index on PM namely APEX, with very high performance, persistence, concurrency, and instant recovery. Our very careful design combines the best of both worlds. Specifically, APEX is designed to reduce PM accesses, especially the heavy-weight writes, flush, and memory fence instructions, while still exploiting ML, to achieve high performance. Our in-depth experimental evaluation on Intel DCPMM shows that APEX achieves up to  15X higher throughput as compared to the state-of-the-art PM indexes, and can recover from failures in  42ms. To the best of our knowledge, APEX is the first full-fledged and practical learned index on PM.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset