Crates.io | skl |
lib.rs | skl |
version | 0.13.0 |
source | src |
created_at | 2021-10-25 16:06:27.830038 |
updated_at | 2024-07-13 12:05:38.43774 |
description | A lock-free thread-safe concurrent ARENA based (heap backend or memory map backend) skiplist implementation which helps develop MVCC memtable for LSM-Tree. |
homepage | https://github.com/al8n/skl |
repository | https://github.com/al8n/skl |
max_upload_size | |
id | 471036 |
size | 300,409 |
SkipMap
implementation based on ARENA skiplist which helps develop MVCC memtable for LSM-Tree.SkipMap
.Only use heap backend (suppport no_std
)
[dependencies]
skl = "0.13"
Enable memory map backend
[dependencies]
skl = { version = "0.13", features = ["memmap"] }
Please see examples folder for more details.
test
:
cargo test --all-features
miri
:
cargo miri test --all-features
targets | status |
---|---|
aarch64-linux-android | ✅ |
aarch64-unknown-linux-gnu | ✅ |
aarch64-unknown-linux-musl | ✅ |
i686-pc-windows-gnu | ✅ |
i686-linux-android | ✅ |
i686-unknown-linux-gnu | ✅ |
mips64-unknown-linux-gnuabi64 | ✅ |
powerpc64-unknown-linux-gnu | ✅ |
riscv64gc-unknown-linux-gnu | ✅ |
wasm32-unknown-unknown | ✅ |
wasm32-unknown-emscripten | ✅ |
x86_64-unknown-linux-gnu | ✅ |
x86_64-pc-windows-gnu | ✅ |
x86_64-linux-android | ✅ |
This code is inspired and modified based on Cockroachdb's pebble arenaskl and Dgraph's badger skl code:
https://github.com/cockroachdb/pebble/tree/master/internal/arenaskl
https://github.com/dgraph-io/badger/tree/master/skl
The pebble's arenaskl code is based on Andy Kimball's arenaskl code:
https://github.com/andy-kimball/arenaskl
The arenaskl code is based on the skiplist found in Badger, a Go-based KV store:
https://github.com/dgraph-io/badger/tree/master/skl
The skiplist in Badger is itself based on a C++ skiplist built for Facebook's RocksDB:
https://github.com/facebook/rocksdb/tree/master/memtable
skl
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) 2022 Al Liu.