- Improve the flexibility of generic version
SkipMap
- Use state pattern for
EntryRef
- Add dynamic
SkipMaps - Support create multiple
SkipMaps on the sameAllocator - Improve docs on some constructor methods
- Cleanup structures and remove
Trailer,TrailedMapandFullMap - Add
versionguard for query APIs - Add
Height::withandKeySize::with - Fix wrong result returned from
Key::is_remove - Add
data_offsetanddata_offset_unifymethod forOptions - Renaming types
- Refactor to support generic key-value types
- Fix
DoubleEndIteratorimplementation - Lazy init the
V::Ref<'a>andK::Ref<'a>inEntryRef
- Extract different kinds of
SkipMapto traits to improve flexibility - Implementing a builder pattern to construct
SkipMaps - Make the crate compatible with Tree Borrows
- Supports unsync version
SkipMaps - Fix: dealloc potential in-unsed memory chunk
- Add
CompressionPolicyas a configuration - Increase the discarded tracker when find new version of a key
- Remove
Comparatorgeneric onEntry*
- Bump
rarena-allocator's version - Change value callback from
impl FnOnce + Copytoimpl Fn
- Refactor and extract lock-free ARENA allocator implementation to
rarena-allocatorcrate.- Add an ordered linked list to track segments.
- Increase maximum key size to
u27::MAX - Support key prefix compression
- Support version compatibility check
- Add
Optionsas a parameter when constructing theSkipMapandSkipSet- 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_insertandget_or_insert_with_valuemethods - Add
compare_remove,get_or_removeandget_or_remove_withmethods - Add
EntryandVersionedEntry - Add discard states tracker and
discardedmethod to let users know how many bytes in ARENA are discarded. - Rename
OccupiedValuetoVacantBufferand do not panic when users do not fully fillVacantBuffer - Add
tracing - Add
SkipMap::refsAPI to allow users get how many references.
- Make file backed mmap
SkipMapandSkipSetstill can be reopened even last time the program was aborted. - Remove checksum validation, users should take care of data integrity by themselves.
- Support
Clonedirectly, no need to useArcwrapper anymore. - Add
OpenOptionsandMmapOptionsto support better controls on file mmap backedSkipMapandSkipSet.
- Add
SkipMap::minimum_versionandSkipSet::minimum_versionto access the min version of theSkipMaporSkipSet. - Fix
maximum_versionis not be updated when usingSkipMap::insert_with.
- Add accessor to
Comparator.
- Relax
MapIteratorandSetIteratortrait bound - Add
SkipMap::maximum_versionandSkipSet::maximum_versionto access the max version of theSkipMaporSkipSet. - Add checksum and max version in overhead for memmory mapped backend
SkipMaporSkipSet. - Use CAS instead of
fetch_updateinArena::alloc.
- Make the result of
MapIterator::entryandSetIterator::entryreference to'a
- Make the result of
MapIterator::seek_upper_boundandMapIterator::seek_lower_boundreference to'a - Make the result of
SetIterator::seek_upper_boundandSetIterator::seek_lower_boundreference to'a
- Add
entrymethod forMapIteratorandSetIteratorto support access the last yield entry of the iterator.
- Make
SkipMap::insertandSkipSet::insertreturn the current value if the key and trailer already exist. - Add the
SkipMap::insert_withmethod to support inserting an vacant key first, then write the value in the closure semantic.
- Implement
IteratorforMapIteratorandSetIterator. - Optimize
Arena::alloclogic.
- Change mmap related API
- Support open exist
SkipMapandSkipSetfile in read only mode.
- Add
flushAPI