โครงการนี้ประกอบด้วยต้นแบบของระบบฐานข้อมูลที่อธิบายไว้ใน
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>
หากคุณตั้งค่า DRYRUN=True
ใน runner.py
คุณจะเห็นคำสั่งทั้งหมดที่จะออกโดยสคริปต์วัดประสิทธิภาพ