6 releases
0.2.2 | Nov 7, 2024 |
---|---|
0.2.1 | Nov 5, 2024 |
0.1.2 | Nov 1, 2024 |
0.1.1 | Oct 22, 2024 |
#177 in Concurrency
1,578 downloads per month
Used in orderwal
105KB
2.5K
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.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.
Dependencies
~385KB