An open-source BzTree implementation, used in our VLDB paper:
Lucas Lersch, Xiangpeng Hao, Ismail Oukid, Tianzheng Wang, Thomas Willhalm:
Evaluating Persistent Memory Range Indexes. PVLDB 13(4): 574-587 (2019)
mkdir build & cd build
cmake -DPMEM_BACKEND=PMDK ..mkdir build & cd build
cmake -DPMEM_BACKEND=VOLATILE ..-DPMEM_BACKEND=EMU to emulate persistent memory using DRAM
-DGOOGLE_FRAMEWORK=0 if you're not comfortable with google frameworks (gtest/glog/gflags)
-DBUILD_TESTS=0 to build shared library only (without tests)
-DMAX_FREEZE_RETRY=n to set max freeze retry times, default to 1, check the original paper for details
-DENABLE_MERGE=1 to enable merge after delete, this is disabled by default, check the original paper for details.
We officially support bztree wrapper for pibench:
make bztree_pibench_wrapper -jCheckout PiBench here: https://github.com/wangtzh/pibench
mkdir Release & cd Release
cmake -DCMAKE_BUILD_TYPE=Release -DPMEM_BACKEND=${BACKEND} -DGOOGLE_FRAMEWORK=0 -DBUILD_TESTS=0 ..