Code repository for our VLDB'23 paper.
1. A two-socket machine with 2nd 2nd Gen Intel® Xeon® Scalable Processors.
2. 1.5TB Intel Optane DIMMs.
Note: If you do not meet the above requirements, you may not be able to reproduce all the experimental results.
$ aptitude search pmem
$ apt-cache search pmem
$ apt search pmem
$ apt-get install <library>
All Runtime:
$ sudo apt-get install libpmem1 librpmem1 libpmemblk1 libpmemlog1 libpmemobj1 libpmempool1
All Development:
$ sudo apt-get install libpmem-dev librpmem-dev libpmemblk-dev libpmemlog-dev libpmemobj-dev libpmempool-dev libpmempool-dev
All Debug:
$ sudo apt-get install libpmem1-debug librpmem1-debug libpmemblk1-debug libpmemlog1-debug libpmemobj1-debug libpmempool1-debug
sudo apt install daxctl
sudo apt install ndctl daxctl
$ sudo apt update
$ sudo apt search ipmctl
$ sudo apt info ipmctl
Install ipmctl
Install PAPI
$ sudo apt update -y
$ sudo apt install -y autoconf automake libtool libconfig-dev libkmod-dev libudev-dev uuid-dev libipmctl-dev libnuma-dev
Install Intel-PMWatch
$ sudo apt install -y numactl
$ pip install -r requirements.txt
sudo sh -c "echo -1 >/proc/sys/kernel/perf_event_paranoid"
sudo sh -c "echo 0 > /proc/sys/kernel/kptr_restrict"
$ ./revitalize.sh
$ ./bin/gen
To run NPHJ-SC:
$ ./bin/main --workload=uniform --subtype=A --param=pkfk --algo=nphj_sc
To run RDX-BC with the bandwidth regulation mechanism:
$ ./bin/main --workload=uniform --subtype=A --param=pkfk --algo=phj_radix_bw_reg_bc
Note: You can also run all joins in DRAM by simply disabling the USE_NVM
variable in CMakeLists.txt.
See scripts/.
Note: You may want to amend the paths of SCM mounting points, PMWatch, and PAPI in src/ before running the experimental scripts.
Since the experiments depend on special hardwares, the hardware configuration practices are available under request.
If you have any enquiries, please contact huang@comp.nus.edu.sg (Huang Wentao) for the further support.
@article{DBLP:journals/pvldb/HuangJZHT23,
author = {Wentao Huang and
Yunhong Ji and
Xuan Zhou and
Bingsheng He and
Kian{-}Lee Tan},
title = {A Design Space Exploration and Evaluation for Main-Memory Hash Joins
in Storage Class Memory},
journal = {Proc. {VLDB} Endow.},
volume = {16},
number = {6},
pages = {1249--1263},
year = {2023},
url = {https://www.vldb.org/pvldb/vol16/p1249-huang.pdf},
timestamp = {Tue, 18 Apr 2023 16:42:01 +0200},
biburl = {https://dblp.org/rec/journals/pvldb/HuangJZHT23.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}