8000 GitHub - Pusnow/silo: Multicore in-memory storage engine
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ silo Public
forked from stephentu/silo

Multicore in-memory storage engine

License

Notifications You must be signed in to change notification settings

Pusnow/silo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
< 8898 svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom">
 
 

Repository files navigation

Silo

This project contains the prototype of the database system described in

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

This code is an ongoing work in progress.

Build

There are several options to build. MODE is an important variable governing the type of build. The default is MODE=perf, see the Makefile for more options. DEBUG=1 triggers a debug build (off by default). CHECK_INVARIANTS=1 enables invariant checking. There are two targets: the default target which builds the test suite, and dbtest which builds the benchmark suite. Examples:

MODE=perf DEBUG=1 CHECK_INVARIANTS=1 make -j
MODE=perf make -j dbtest

Each different combination of MODE, DEBUG, and CHECK_INVARIANTS triggers a unique output directory; for example, the first command above builds to out-perf.debug.check.masstree.

Silo now uses Masstree by default as the default index tree. To use the old tree, set MASSTREE=0.

Running

To run the tests, simply invoke <outdir>/test with no arguments. To run the benchmark suite, invoke <outdir>/benchmarks/dbtest. For now, look in benchmarks/dbtest.cc for documentation on the command line arguments. An example invocation for TPC-C is:

<outdir>/benchmarks/dbtest \
    --verbose \
    --bench tpcc \
    --num-threads 28 \
    --scale-factor 28 \
    --runtime 30 \
    --numa-memory 112G 

Benchmarks

To reproduce the graphs from the paper:

$ cd benchmarks
$ python runner.py /unused-dir <results-file-prefix>

If you set DRYRUN=True in runner.py, then you get to see all the commands that would be issued by the benchmark script.

About

Multicore in-memory storage engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 69.5%
  • Python 24.3%
  • C 3.2%
  • TeX 1.9%
  • M4 0.7%
  • Makefile 0.4%
0