- Notifications
You must be signed in to change notification settings - Fork13
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).
About
Optimistic multi-version concurrency control (MVCC) for main memory databases, written in Rust.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.