rdms

Crates.iordms
lib.rsrdms
version0.0.1
sourcesrc
created_at2019-10-09 12:39:48.814143
updated_at2019-10-09 12:39:48.814143
descriptionComposable storage for key,value index
homepagehttps://github.com/bnclabs/rdms
repositoryhttps://github.com/bnclabs/rdms
max_upload_size
id171196
size675,191
(prataprc)

documentation

https://docs.rs/rdms

README

Key Value store

License: AGPL v3

  • CRUD support.
  • ACID compliance.
  • Index held only in memory, useful for caching data.
  • Index held in memory, with as disk backup.
  • Index held in disk.
  • Index held in disk, with working set held in memory.
  • Durability guarantee using Write Ahead Logging.
  • LSM based Multi-level storage on memory and/or disks.
  • Index can be compose using:
    • Type choice of key.
    • Type choice of value.
    • Type choice of memory data-structure. Type can be:
      • Left leaning red black tree.
      • Left leaning red black tree, with Multi-version-concurrency-control.
      • Skip list, with concurrent writers.
    • Type choice of disk data-structure.
      • Read only Btree.
      • Append only Btree.
  • Centralised version control for index entries.
  • Decentralised version control for index entries.
  • Value, along with delta, can be stored in separate log files.

Open design decisions

Given Rust's threading model, is it more efficient to en-force, using atomic primitives, that all write operations on MVCC index is deligated to single thread or is it more efficient to serialize write operations from multiple threads.

Is it enough to use Relaxed memory-ordering for AtomicPtr operations to manage MVCC Snapshots ?

Add a feature for using jemalloc instead of using system allocator.

Commit count: 925

cargo fmt