Releases: dfinity/stable-structures
Releases · dfinity/stable-structures
v0.6.0-beta.0
This is a beta release that features an early preview of BTreeMap V2, a btree that supports unbounded keys and values. An example showcasing the BTreeMap V2 functionality can be found here.
What's Changed
- chore: update CHANGELOG.md by @ielashi in #102
- test:
Node::load
andNode::save
by @ielashi in #107 - chore: fix minor error in docs by @ielashi in #112
- test: improve test coverage of
BTreeMap::Node
by @ielashi in #113 - chore: merge
BoundedStorable
intoStorable
by @ielashi in #94 - feat: v2 of
BTreeMap::Node
to support unbounded types. by @ielashi in #114 - feat: BTreeMap V2 (beta) by @ielashi in #115
- feat: add basic profiling to benchmarks by @ielashi in #116
- perf: make BTreeMap V2 2-4x more officient by @ielashi in #118
- fix: memory leak in BTreeMap V2 by @ielashi in #119
- perf: set page size when keys and values are bounded by @ielashi in #120
- feat: introduce new benchmarking script by @ielashi in #121
- perf: do not store key size in BTreeMap if size is fixed. by @ielashi in #122
- perf: update BTreeMap v2 default page size from 500 bytes to 1024 bytes by @ielashi in #123
- feat: prepare beta release + add example for BTreeMap v2 by @ielashi in #124
Full Changelog: v0.5.6...v0.6.0-beta.0
v0.5.6
v0.5.5
What's Changed
- chore: update dependencies in examples by @peterpeterparker in #86
- refactor(vec): move Vec logic into BaseVec by @roman-kashitsyn in #90
- feat: stable min heap data structure by @roman-kashitsyn in #91
- chore: upgrade version to 0.5.5 by @ielashi in #96
Full Changelog: v0.5.4...v0.5.5
v0.5.4
This release contains a number of performance improvements to BTreeMap
, making it substantially more efficient.
- perf: remove redundant node load from BTreeMap::remove by @ielashi in #78
- perf: lazy loading of BTreeMap values by @ielashi in #79
- perf: do not makes
Bytes
packed. by @ielashi in #80
Improvements have also been made to the README docs.
Full Changelog: v0.5.3...v0.5.4
Benchmark results showing the performance improvements between this version and the previous one:
btreemap_insert_blob_4_1024
time: [902.82 M Instructions 902.82 M Instructions 902.82 M Instructions]
change: [-36.121% -36.121% -36.121%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_8_1024
time: [1040.8 M Instructions 1040.8 M Instructions 1040.8 M Instructions]
change: [-35.725% -35.725% -35.725%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_16_1024
time: [1136.5 M Instructions 1136.5 M Instructions 1136.5 M Instructions]
change: [-33.131% -33.131% -33.131%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_32_1024
time: [1180.3 M Instructions 1180.3 M Instructions 1180.3 M Instructions]
change: [-32.265% -32.265% -32.265%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_64_1024
time: [1420.0 M Instructions 1420.0 M Instructions 1420.0 M Instructions]
change: [-30.241% -30.241% -30.241%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_128_1024
time: [1679.8 M Instructions 1679.8 M Instructions 1679.8 M Instructions]
change: [-27.667% -27.667% -27.667%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_256_1024
time: [2196.8 M Instructions 2196.8 M Instructions 2196.8 M Instructions]
change: [-23.846% -23.846% -23.846%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_512_1024
time: [3257.9 M Instructions 3257.9 M Instructions 3257.9 M Instructions]
change: [-18.772% -18.772% -18.772%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_u64_u64 time: [756.97 M Instructions 756.97 M Instructions 756.97 M Instructions]
change: [-19.881% -19.881% -19.881%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_u64_blob_8
time: [729.82 M Instructions 729.82 M Instructions 729.82 M Instructions]
change: [-16.986% -16.986% -16.986%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_insert_blob_8_u64
time: [642.09 M Instructions 642.09 M Instructions 642.09 M Instructions]
change: [-26.375% -26.375% -26.375%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_4_1024
time: [396.58 M Instructions 396.58 M Instructions 396.58 M Instructions]
change: [-69.977% -69.977% -69.977%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_8_1024
time: [462.52 M Instructions 462.52 M Instructions 462.52 M Instructions]
change: [-64.833% -64.833% -64.833%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_16_1024
time: [545.06 M Instructions 545.06 M Instructions 545.06 M Instructions]
change: [-60.784% -60.784% -60.784%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_32_1024
time: [575.75 M Instructions 575.75 M Instructions 575.75 M Instructions]
change: [-60.758% -60.758% -60.758%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_64_1024
time: [799.59 M Instructions 799.59 M Instructions 799.59 M Instructions]
change: [-53.474% -53.474% -53.474%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_128_1024
time: [1021.2 M Instructions 1021.2 M Instructions 1021.2 M Instructions]
change: [-47.658% -47.658% -47.658%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_u64_u64 time: [393.51 M Instructions 393.51 M Instructions 393.51 M Instructions]
change: [-48.484% -48.484% -48.484%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_u64_blob_8 time: [389.66 M Instructions 389.66 M Instructions 389.66 M Instructions]
change: [-44.346% -44.346% -44.346%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_8_u64 time: [407.98 M Instructions 407.98 M Instructions 407.98 M Instructions]
change: [-45.976% -45.976% -45.976%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_256_1024
time: [1511.0 M Instructions 1511.0 M Instructions 1511.0 M Instructions]
change: [-38.501% -38.501% -38.501%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_get_blob_512_1024
time: [2476.6 M Instructions 2476.6 M Instructions 2476.6 M Instructions]
change: [-27.960% -27.960% -27.960%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_4_1024
time: [984.03 M Instructions 984.03 M Instructions 984.03 M Instructions]
change: [-57.642% -57.642% -57.642%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_8_1024
time: [1261.0 M Instructions 1261.0 M Instructions 1261.0 M Instructions]
change: [-52.544% -52.544% -52.544%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_16_1024
time: [1504.9 M Instructions 1504.9 M Instructions 1504.9 M Instructions]
change: [-49.345% -49.345% -49.345%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_32_1024
time: [1579.8 M Instructions 1579.8 M Instructions 1579.8 M Instructions]
change: [-48.328% -48.328% -48.328%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_64_1024
time: [1874.1 M Instructions 1874.1 M Instructions 1874.1 M Instructions]
change: [-46.512% -46.512% -46.512%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_128_1024
time: [2196.8 M Instructions 2196.8 M Instructions 2196.8 M Instructions]
change: [-45.162% -45.162% -45.162%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_256_1024
time: [2806.5 M Instructions 2806.5 M Instructions 2806.5 M Instructions]
change: [-44.361% -44.361% -44.361%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_u64_u64 time: [1087.0 M Instructions 1087.0 M Instructions 1087.0 M Instructions]
change: [-36.420% -36.420% -36.420%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_u64_blob_8
time: [1045.4 M Instructions 1045.4 M Instructions 1045.4 M Instructions]
change: [-34.480% -34.480% -34.480%] (p = 0.00 < 0.05)
Performance has improved.
btreemap_remove_blob_8_u64
time: [858.01 M Instructions 858.01 M Instructions 858.01 M Instructions]
change: [-45.248% -45.248% -45.248%] (p = 0.00 < 0.05)
Performance has improved.
v0.5.3
Changed
- chore: setup path for benchmarks by @ielashi in #65
- Add benchmarks with u64 values by @adambratschikaye in #66
- chore: add conventional pr titles check to CI by @ielashi in #68
- feat: make Reverse storable by @roman-kashitsyn in #71
- chore: bump crate version by @ielashi in #72
Full Changelog: v0.5.2...v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.1
v0.4.0
Optimized
- Eliminated unnecessary buffer clones when loading a
BTreeMap
node, resulting in a performance improvement of ~30% in inserts and removals.
Added
- An implementation of a stable
Vec
. - More
BoundedStorable
types, notablyBlob
. - A sound implementation of
BTreeMap::range
- Iterators for StableVec and StableLog.
Changed
- The default bucket size in
MemoryManager
from 64MiB to 8MiB. - The argument order in
BTreeMap::init
andBTreeMap::new
. - Syntax changes to
BoundedStorable
, in addition to specifying whether or not a type is fixed or variable in length. BTreeMap::insert
no longer returns aResult
.- StableLog has a type parameter now.
Removed
BTreeMap::init_with_sizes
in favor of using theBoundedStorable
trait.