8 unstable releases (3 breaking)
new 0.4.3 | Dec 26, 2024 |
---|---|
0.4.2 |
|
0.3.0 | Dec 21, 2024 |
0.2.2 | Nov 7, 2024 |
0.1.1 | Oct 22, 2024 |
#410 in Concurrency
335 downloads per month
Used in 2 crates
96KB
2K
SLoC
crossbeam-skiplist-mvcc
Introducation
Support MVCC (Multiple Version Concurrent Control) for crossbeam-skiplist
.
There are two kinds of multiple version concurrent control SkipMap
:
-
nested::SkipMap
The inner is
SkipMap<K, SkipMap<u64, Option<V>>>
.- Pros
- Fast latest iterators, fast read and write performance
- Cons:
- Once a key is inserted into the outer
SkipMap
, the compaction can only remove the values in the innerSkipMap
, this key cannot be removed any more. So, this may lead to high memory usage.
- Once a key is inserted into the outer
- Pros
-
flatten::SkipMap
The inner is
SkipMap<Key<K>, Option<V>>
.- Pros
- Keys can be fully removed through compaction.
- Cons
- Unlike
nested::SkipMap
,flatten::SkipMap
will store the same key multiple times, so this may lead to high memory usage. - Insertion, querying, and latest iterators may slower than
nested::SkipMap
- Unlike
- Pros
Installation
[dependencies]
crossbeam_skiplist_mvcc = "0.3"
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.
Dependencies
~1MB
~15K SLoC