Proyek ini berisi prototipe sistem database yang dijelaskan dalam
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
Kode ini masih dalam proses.
Ada beberapa opsi untuk membangun. MODE
adalah variabel penting yang mengatur tipe build. Standarnya adalah MODE=perf
, lihat Makefile untuk opsi lebih lanjut. DEBUG=1
memicu build debug (dinonaktifkan secara default). CHECK_INVARIANTS=1
mengaktifkan pemeriksaan invarian. Ada dua target: target default yang membuat rangkaian pengujian, dan dbtest
yang membuat rangkaian benchmark. Contoh:
MODE=perf DEBUG=1 CHECK_INVARIANTS=1 make -j MODE=perf make -j dbtest
Setiap kombinasi MODE
, DEBUG
, dan CHECK_INVARIANTS
yang berbeda memicu direktori keluaran unik; misalnya, perintah pertama di atas dibuat menjadi out-perf.debug.check.masstree
.
Silo sekarang menggunakan Masstree secara default sebagai pohon indeks default. Untuk menggunakan pohon lama, setel MASSTREE=0
.
Untuk menjalankan pengujian, cukup aktifkan <outdir>/test
tanpa argumen. Untuk menjalankan rangkaian benchmark, aktifkan <outdir>/benchmarks/dbtest
. Untuk saat ini, lihat benchmarks/dbtest.cc
untuk dokumentasi argumen baris perintah. Contoh pemanggilan untuk TPC-C adalah:
<outdir>/benchmarks/dbtest --verbose --bench tpcc --num-threads 28 --scale-factor 28 --runtime 30 --numa-memory 112G
Untuk mereproduksi grafik dari kertas:
$ cd benchmarks $ python runner.py /unused-dir <results-file-prefix>
Jika Anda menyetel DRYRUN=True
di runner.py
, maka Anda akan melihat semua perintah yang akan dikeluarkan oleh skrip benchmark.