- Notifications
You must be signed in to change notification settings - Fork12
Optimistic multi-version concurrency control (MVCC) for main memory databases, written in Rust.
License
penberg/tihku
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Tihku is anwork-in-progress, open-source implementation of the Hekaton multi-version concurrency control (MVCC) written in Rust.The project aims to provide a foundational building block for implementing database management systems.
One of the projects using Tihku is an experimentallibSQL branch with MVCC that aims to implementBEGIN CONCURRENT
with Tihku improve SQLite write concurrency.
- Main memory architecture, rows are accessed via an index
- Optimistic multi-version concurrency control
- Rust and C APIs
Single-threaded micro-benchmarks
Operations | Throughput |
---|---|
begin_tx ,read , andcommit | 2.2M ops/second |
begin_tx ,update , andcommit | 2.2M ops/second |
read | 12.9M ops/second |
update | 6.2M ops/second |
(Thecargo bench
was run on a AMD Ryzen 9 3900XT 2.2 GHz CPU.)
Run tests:
cargo test
Test coverage report:
cargo tarpaulin -o html
Run benchmarks:
cargo bench
Run benchmarks and generate flamegraphs:
echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoidcargo bench --bench my_benchmark -- --profile-time=5
Larson et al.High-Performance Concurrency Control Mechanisms for Main-Memory Databases. VLDB '11
Paper errata: The visibility check in Table 2 is wrong and causes uncommitted delete to become visible to transactions (fixed incommit 6ca3773).