Crate sled [−] [src]
sled
is a flash-sympathetic persistent lock-free B+ tree, pagecache, and log.
let t = sled::Config::default().tree(); t.set(b"yo!".to_vec(), b"v1".to_vec()); assert_eq!(t.get(b"yo!"), Some(b"v1".to_vec())); t.cas(b"yo!".to_vec(), Some(b"v1".to_vec()), Some(b"v2".to_vec())).unwrap(); 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!");
Modules
c |
C-compatible API for the lock-free log-structured B+tree. |
Structs
CasKey |
A wrapper struct for a pointer to a (possibly invalid, hence inaccessible)
|
Config |
Top-level configuration for the system. |
LockFreeLog |
A sequential store which allows users to create reservations placed at known log offsets, used for writing persistent data structures that need to know where to find persisted bits in the future. |
M |
A metric collector for all sled instances running in this process. |
PageCache |
A lock-free pagecache which supports fragmented pages for dramatically improving write throughput. |
Radix |
A simple lock-free radix tree. |
Stack |
A simple lock-free stack, with the ability to atomically append or entirely swap-out entries. |
Tree |
A flash-sympathetic persistent lock-free B+ tree |
TreeIter |
An iterator over keys and values in a |
Traits
Log |
A trait for objects which facilitate log-structured storage. |
Materializer |
A user of a |