• Stars
    star
    368
  • Rank 115,958 (Top 3 %)
  • Language
    C++
  • License
    MIT License
  • Created over 11 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Multicore in-memory storage engine

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.

More Repositories

1

scala-sql-parser

SQL parser written using Scala's parser combinator library
Scala
107
star
2

scalex

Code snippets for the workshop on concurrent data structure implementation.
C++
31
star
3

monomi-optimizer

Monomi designer and planner prototype
Scala
14
star
4

numa-bench

C++
13
star
5

qemu-tsx

An implementation of Intel's hardware transactional memory (TSX) specification in QEMU
C
10
star
6

mcmc-sandbox

MH and Gibbs sampling implementations
Python
7
star
7

cannyedge-detector

Canny edge detector implemented in Scala
Scala
5
star
8

zero-to-cartpole

Swing up controller for cartpole
Jupyter Notebook
5
star
9

fbsh

Facebook on the command line
Python
5
star
10

calclang

very simple expression language demonstrating how to build a JVM byte code generating compiler
Java
4
star
11

mysql-cm-fingerprint-udf

A MySQL aggregate UDF to compute a CM-fingerprint
C
3
star
12

murmur-inc

Simple C++ library for computing murmur hashes
C++
3
star
13

forwarder

Exposing services behind NATs without network reconfiguration
Python
3
star
14

simple-sidereel

very primitive scraper for sidereel to get episode URLs
Python
3
star
15

parlearn

parallel SGD implementation
C++
3
star
16

venom-lang

Statically typed scripting language
C++
3
star
17

ncurses-png-viewer

A ncurses based PNG viewer
C
3
star
18

mysql-sum-sse-udf

Implementing sum aggregation using Intel SSE instructions for MySQL
C
3
star
19

community

Implementation of SDP relaxation for community detection.
Jupyter Notebook
2
star
20

scala-rm

Scala
2
star
21

stephentu.github.io

JavaScript
2
star
22

scala-remote-actors-perf-tests

Performance tests for scala remote actors
Scala
1
star
23

cpp-exec-service

Simple C++ job execution library
C++
1
star
24

sigmodstars

Inspired by: http://from-a-to-remzi.blogspot.com/2013/05/the-systems-top-50.html
Python
1
star
25

score-split

split based on scores
C
1
star
26

java-optional

Java version of alexy's and paulp's Scala optional tool
Java
1
star
27

swissroll

Manifold learning implementations
Python
1
star
28

mapbench

Compare std::map to C++11's std::unordered_map
C++
1
star
29

cs184-ikrobot

Simple IK robot project for CS184
C++
1
star
30

parallel-svmlight-loader

Python
1
star
31

scala-actors-doc

Documentation for Scala Actors
1
star
32

gchatviz

Python
1
star
33

minimax-fun

some minimax game tree I wrote
Scala
1
star
34

scala-gsoc-sandbox

A collection of scripts / code experimenting with the new remote actors API
Scala
1
star