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 -j
Checkout 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 ..