This repository accompanies our VLDB 2021 paper about modular transaction isolation:
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.
/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.