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
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
The output data should be mostly self-explanatory. More details can be found in system/stats.cpp.