#memtable #key-value-database #mvcc #memory-table

no-std memorable

Lock-free, ordered and multiple version memory table for key-value databases

1 unstable release

0.1.1 Nov 25, 2024
0.1.0 Nov 25, 2024

#138 in Database implementations

Download history 268/week @ 2024-11-25

268 downloads per month

MIT/Apache

215KB
3.5K SLoC

Memorable

Lock-free, ordered and multiple version memory table for key-value databases.

github LoC Build codecov

docs.rs crates.io crates.io license

Features

  • Lock-free, multiple version and no_std compitable
  • Not only limited to point insert and get, but also support range deletions and range updates
  • Flexiable iterators and APIs for users to implement flush logic
  • Two kinds of memtable for different use cases:
    1. Unbounded memtable based on dynamic allocated unbounded skiplist
    2. Fixed-size bounded memtable based on ARENA style skiplist

Installation

[dependencies]
memorable = "0.1"

License

memorable is under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2024 Al Liu.

Dependencies

~0.3–10MB
~115K SLoC