Crate rsdb [] [src]

rsdb is a flash-sympathetic persistent lock-free B+ tree, pagecache, and log.

extern crate rsdb;

let t = rsdb::Config::default().tree();

t.set(b"yo!".to_vec(), b"v1".to_vec());
t.get(b"yo!");
t.cas(b"yo!".to_vec(), Some(b"v1".to_vec()), Some(b"v2".to_vec()));

let mut iter = t.scan(b"a non-present key before yo!");
assert_eq!(iter.next(), Some((b"yo!".to_vec(), b"v2".to_vec())));
assert_eq!(iter.next(), None);

t.del(b"yo!");

Structs

Config

Top-level configuration for the system.

LockFreeLog

LockFreeLog is responsible for putting data on disk, and retrieving it later on.

PageCache

A lock-free pagecache.

Radix

A simple lock-free radix tree.

Tree

A flash-sympathetic persistent lock-free B+ tree

Traits

Log

A trait for objects which facilitate log-structured storage.

Materializer

A tenant of a PageCache needs to provide a Materializer which handles the processing of pages.