silo
1.0.0
该项目包含中描述的数据库系统的原型
Speedy Transactions in Multicore In-Memory Databases Stephen Tu, Wenting Zheng, Eddie Kohler, Barbara Liskov, Samuel Madden SOSP 2013. http://people.csail.mit.edu/stephentu/papers/silo.pdf
该代码是一项正在进行中的工作。
有多种构建选项。 MODE
是控制构建类型的重要变量。默认值为MODE=perf
,请参阅 Makefile 了解更多选项。 DEBUG=1
触发调试构建(默认关闭)。 CHECK_INVARIANTS=1
启用不变检查。有两个目标:构建测试套件的默认目标和构建基准套件的dbtest
。示例:
MODE=perf DEBUG=1 CHECK_INVARIANTS=1 make -j MODE=perf make -j dbtest
MODE
、 DEBUG
和CHECK_INVARIANTS
的每种不同组合都会触发一个唯一的输出目录;例如,上面的第一个命令构建为out-perf.debug.check.masstree
。
Silo 现在默认使用 Masstree 作为默认索引树。要使用旧树,请设置MASSTREE=0
。
要运行测试,只需调用不带参数的<outdir>/test
即可。要运行基准测试套件,请调用<outdir>/benchmarks/dbtest
。现在,请查看benchmarks/dbtest.cc
以获取有关命令行参数的文档。 TPC-C 的调用示例如下:
<outdir>/benchmarks/dbtest --verbose --bench tpcc --num-threads 28 --scale-factor 28 --runtime 30 --numa-memory 112G
要重现论文中的图表:
$ cd benchmarks $ python runner.py /unused-dir <results-file-prefix>
如果您在runner.py
中设置DRYRUN=True
,那么您可以看到基准测试脚本将发出的所有命令。