/Sundial

Sundial: A distributed OLTP database testbed.

Primary LanguageC++ISC LicenseISC

Sundial

Sundial is a distributed OLTP database management system (DBMS). It supports a number of traditional/modern distributed concurrency control protocols, including WAIT_DIE, NO_WAIT, F1 (Google), MaaT, and TicToc. Sundial is implemented on top of DBx1000.

The following two papers describe Sundial and DBx1000, respectively:

Sundial Paper
Xiangyao Yu, Yu Xia, Andrew Pavlo, Daniel Sanchez, Larry Rudolph, Srinivas Devadas
Sundial: Harmonizing Concurrency Control and Caching in a Distributed OLTP Database Management System
VLDB 2018

DBx1000 Paper
Xiangyao Yu, George Bezerra, Andrew Pavlo, Srinivas Devadas, Michael Stonebraker
Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores
VLDB 2014

Configuration

To build the database:

make

To run on a single node:

./rundb

To run on multiple nodes, add the ip address of each node into ifconfig.txt with one IP per line. Then execute ./rundb on each node. More details on the network setup can be found in transport/transport.cpp.

To get command line options:

./rundb -h

More parameter setting can be found in config.h

Output

The output data should be mostly self-explanatory. More details can be found in system/stats.cpp.