BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory

被引:120
作者
Arulraj, Joy [1 ,2 ]
Levandoski, Justin [2 ]
Minhas, Umar Farooq [2 ]
Larson, Per-Ake [3 ]
机构
[1] Carnegie Mellon Univ, Pittsburgh, PA 15213 USA
[2] Microsoft Res, Redmond, WA USA
[3] Univ Waterloo, Waterloo, ON, Canada
来源
PROCEEDINGS OF THE VLDB ENDOWMENT | 2018年 / 11卷 / 05期
关键词
TRANSACTIONAL MEMORY; ARCHITECTURE; LOCK; SWAP;
D O I
10.1145/3164135.3164147
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Storing a database (rows and indexes) entirely in non-volatile memory (NVM) potentially enables both high performance and fast recovery. To fully exploit parallelism on modern CPUs, modern main-memory databases use latch-free (lock-free) index structures, e.g. Bw-tree or skip lists. To achieve high performance NVM-resident indexes also need to be latch-free. This paper describes the design of the BzTree, a latch-free B-tree index designed for NVM. The BzTree uses a persistent multi-word compare-and-swap operation (PMwCAS) as a core building block, enabling an index design that has several important advantages compared with competing index structures such as the Bw-tree. First, the BzTree is latch-free yet simple to implement. Second, the BzTree is fast - showing up to 2x higher throughput than the Bw-tree in our experiments. Third, the BzTree does not require any special-purpose recovery code. Recovery is near-instantaneous and only involves rolling back (or forward) any PMwCAS operations that were in-flight during failure. Our end-to-end recovery experiments of BzTree report an average recovery time of 145 mu s. Finally, the same BzTree implementation runs seamlessly on both volatile RAM and NVM, which greatly reduces the cost of code maintenance.
引用
收藏
页码:553 / 565
页数:13
相关论文
共 32 条
[1]  
Anderson J. H., 1997, Proceedings of the Sixteenth Annual ACM Symposium on Principles of Distributed Computing, P229, DOI 10.1145/259380.259443
[2]  
[Anonymous], 2011, FAST
[3]  
[Anonymous], 2017, INT ARCH INSTR SET E
[4]  
[Anonymous], 2010, P 1 ACM S CLOUD COMP, DOI DOI 10.1145/1807128.1807152
[5]  
[Anonymous], 2017, Technical report
[6]  
Chen S., 2011, 5 BIENN C INN DAT SY, DOI DOI 10.1145/2029956.2029964
[7]   Persistent B+ - Trees in Non-Volatile Main Memory [J].
Chen, Shimin ;
Jin, Qin .
PROCEEDINGS OF THE VLDB ENDOWMENT, 2015, 8 (07) :786-797
[8]  
Crooke Rob., 2015, Intel 3D XPoint launch keynote
[9]  
Diaconu C., 2013, SIGMOD, DOI DOI 10.1145/2463676.2463710
[10]  
Fraser Keir, 2004, Practical lock-freedom