DIBS: Database Isolation By Scheduling
This repository accompanies our VLDB 2021 paper about modular transaction isolation:
Build instructions
DIBS is implemented in Rust. You can install Rust and its package manager, Cargo, by following the instructions here.
To build the project, run cargo build
from the top-level directory. For a release build, run cargo build --release
.
To run a specific experiment, run cargo run --bin <name>
. Each experiment takes several parameters. You can examine the parameters by running path/to/bin --help
.
Project structure
/dibs
contains the transaction isolation logic. The file predicate.rs
includes the definition of the predicate data structure and some auxiliary functions. The file solver.rs
implements the solver that determines whether two predicates conflict.
/experiments
contains the code that was used to produce the results in the paper. Each executable in subdirectory /bin
is a separate experiment.