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
,那麼您可以看到基準測試腳本將發出的所有指令。