MVCC, ACI, Serializable Snapshot Isolation的内存数据库

原文英文,约200词,阅读约需1分钟。发表于:

Repo: https://github.com/al8n/skipdb An embedded, in-memory, zero-copy, MVCC, almost lock-free and serializable snapshot isolation database engine. Features Atomicity, Consistency, Isolation, MVCC, serializable snapshot isolation, concurrent safe and almost lock-free. No extra allocation and copy, there is no Arc wrapper for both key and value stored in the database, which means that users provide K and V, and database store K and V directly. Zero-copy and in-place compaction, which means there is no copy, no extra allocation when compacting. Concurrent execution of transactions, providing serializable snapshot isolation, avoiding write skews. Both read transaction and write transaction are Send + Sync + 'static, which means you do not need to handle annoying lifetime problem anymore. Lock-free and concurrent safe read transaction: the read transaction is totally concurrent safe and can be shared in multiple threads, there is no lock in read transaction. BTreeMap like user friendly API and all iterators implement Iterator trait, which means users use Rust powerful conbinators when iterating over the database. Async version is runtime agnostic, tokio, async-std, smol, wasm-bindgen-futures and any other async runtime. 100% safe, sets [forbid(unsafe_code)].

Skipdb是一个嵌入式、内存中的数据库引擎,具有ACID、MVCC、可串行化快照隔离、并发安全和几乎无锁的特点。它支持零拷贝和原地压缩,可以并发执行事务,提供可串行化快照隔离,避免写偏斜。它还提供了类似BTreeMap的用户友好API,并且所有迭代器都实现了Iterator trait,可以在迭代数据库时使用Rust强大的组合器。它还支持各种异步运行时,如tokio、async-std、smol、wasm-bindgen-futures等。

相关推荐 去reddit讨论