30 releases (17 stable)
|new 5.0.11||Mar 19, 2023|
|5.0.7||Feb 25, 2023|
|5.0.6||Nov 27, 2022|
|4.0.0||Nov 16, 2022|
|0.0.13||Nov 13, 2022|
#156 in Concurrency
164 downloads per month
Used in marble
Lock-free linearizable map.
- fully lock-free node splits and merges based on the sled battle-tested implementation.
concurrent-mapcan be though of in some ways as a simplified, in-memory
sledthat supports high-level types.
- initially designed for use in sled's next generation object store, marble.
ConcurrentMap allows users to tune the tree fan-out (
and the underlying memory reclamation granularity (
for achieving desired performance properties. The defaults are pretty good
for most use cases but if you want to squeeze every bit of performance out
for your particular workload, tweaking them based on realistic measurements
may be beneficial. See the
ConcurrentMap docs for more details.
If you want to use a custom key type, you must
allowing the left-most side of the tree to be
created before inserting any data. If you wish
to perform scans in reverse lexicographical order,
you may instead implement
Maximum for your key
type and use
This is an ordered data structure, and supports very high throughput iteration over lexicographically sorted ranges of values. If you are looking for simple point operation performance, you may find a better option among one of the many concurrent hashmap implementations that are floating around. Pay for what you actually use :)