- Add dynamic
SkipMap
s - Support create multiple
SkipMap
s on the sameAllocator
- Improve docs on some constructor methods
- Cleanup structures and remove
Trailer
,TrailedMap
andFullMap
- Add
version
guard for query APIs - Add
Height::with
andKeySize::with
- Fix wrong result returned from
Key::is_remove
- Add
data_offset
anddata_offset_unify
method forOptions
- Renaming types
- Refactor to support generic key-value types
- Fix
DoubleEndIterator
implementation - Lazy init the
V::Ref<'a>
andK::Ref<'a>
inEntryRef
- Extract different kinds of
SkipMap
to traits to improve flexibility - Implementing a builder pattern to construct
SkipMap
s - Make the crate compatible with Tree Borrows
- Supports unsync version
SkipMap
s - Fix: dealloc potential in-unsed memory chunk
- Add
CompressionPolicy
as a configuration - Increase the discarded tracker when find new version of a key
- Remove
Comparator
generic onEntry*
- Bump
rarena-allocator
's version - Change value callback from
impl FnOnce + Copy
toimpl Fn
- Refactor and extract lock-free ARENA allocator implementation to
rarena-allocator
crate.- Add an ordered linked list to track segments.
- Increase maximum key size to
u27::MAX
- Support key prefix compression
- Support version compatibility check
- Add
Options
as a parameter when constructing theSkipMap
andSkipSet
- Support specify max key size and max value size
- Support set the max height
- Remove
SkipSet
- Add
insert
,insert_with
,insert_with_value
,get_or_insert
,get_or_insert
andget_or_insert_with_value
methods - Add
compare_remove
,get_or_remove
andget_or_remove_with
methods - Add
Entry
andVersionedEntry
- Add discard states tracker and
discarded
method to let users know how many bytes in ARENA are discarded. - Rename
OccupiedValue
toVacantBuffer
and do not panic when users do not fully fillVacantBuffer
- Add
tracing
- Add
SkipMap::refs
API to allow users get how many references.
- Make file backed mmap
SkipMap
andSkipSet
still can be reopened even last time the program was aborted. - Remove checksum validation, users should take care of data integrity by themselves.
- Support
Clone
directly, no need to useArc
wrapper anymore. - Add
OpenOptions
andMmapOptions
to support better controls on file mmap backedSkipMap
andSkipSet
.
- Add
SkipMap::minimum_version
andSkipSet::minimum_version
to access the min version of theSkipMap
orSkipSet
. - Fix
maximum_version
is not be updated when usingSkipMap::insert_with
.
- Add accessor to
Comparator
.
- Relax
MapIterator
andSetIterator
trait bound - Add
SkipMap::maximum_version
andSkipSet::maximum_version
to access the max version of theSkipMap
orSkipSet
. - Add checksum and max version in overhead for memmory mapped backend
SkipMap
orSkipSet
. - Use CAS instead of
fetch_update
inArena::alloc
.
- Make the result of
MapIterator::entry
andSetIterator::entry
reference to'a
- Make the result of
MapIterator::seek_upper_bound
andMapIterator::seek_lower_bound
reference to'a
- Make the result of
SetIterator::seek_upper_bound
andSetIterator::seek_lower_bound
reference to'a
- Add
entry
method forMapIterator
andSetIterator
to support access the last yield entry of the iterator.
- Make
SkipMap::insert
andSkipSet::insert
return the current value if the key and trailer already exist. - Add the
SkipMap::insert_with
method to support inserting an vacant key first, then write the value in the closure semantic.
- Implement
Iterator
forMapIterator
andSetIterator
. - Optimize
Arena::alloc
logic.
- Change mmap related API
- Support open exist
SkipMap
andSkipSet
file in read only mode.
- Add
flush
API