crossbeam-skiplist-mvcc

Crates.iocrossbeam-skiplist-mvcc
lib.rscrossbeam-skiplist-mvcc
version
sourcesrc
created_at2024-10-21 21:36:29.817281
updated_at2024-11-07 14:23:58.186176
descriptionSupport MVCC (Multiple Version Concurrent Control) for `crossbeam-skiplist`.
homepagehttps://github.com/al8n/crossbeam-skiplist-mvcc
repositoryhttps://github.com/al8n/crossbeam-skiplist-mvcc
max_upload_size
id1417961
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Al Liu (al8n)

documentation

https://docs.rs/crossbeam-skiplist-mvcc

README

crossbeam-skiplist-mvcc

Support MVCC (Multiple Version Concurrent Control) for crossbeam-skiplist.

github LoC Build codecov

docs.rs crates.io crates.io license

Introducation

Support MVCC (Multiple Version Concurrent Control) for crossbeam-skiplist.

There are two kinds of multiple version concurrent control SkipMap:

  1. nested::SkipMap

    The inner is SkipMap<K, SkipMap<u64, Option<V>>>.

    1. Pros
      1. Fast latest iterators, fast read and write performance
    2. Cons:
      1. Once a key is inserted into the outer SkipMap, the compaction can only remove the values in the inner SkipMap, this key cannot be removed any more. So, this may lead to high memory usage.
  2. flatten::SkipMap

    The inner is SkipMap<Key<K>, Option<V>>.

    1. Pros
      1. Keys can be fully removed through compaction.
    2. Cons
      1. Unlike nested::SkipMap, flatten::SkipMap will store the same key multiple times, so this may lead to high memory usage.
      2. Insertion, querying, and latest iterators may slower than nested::SkipMap

Installation

[dependencies]
crossbeam_skiplist_mvcc = "0.1"

License

crossbeam-skiplist-mvcc 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.

Commit count: 9

cargo fmt