Releases
This page summarize information about the Speedb releases.
Find out what's new in Speedb!
This page summarize information about new features, bugs fixes and enhancements per release.
v2.8.0
Speedb 2.8.0 (31-January-2024)
The following release is based on RocksDB 8.6.7
New Features
Enhancements
Add JAVA and C Interface for EnableSpeedbFeatures by @udi-speedb in #772
LOG Enhancement:Have a separate LOG entry per CF Stats by @udi-speedb in #801
Bug Fixes
stress test: Fixed TestIterateAgainstExpected not supporting 0 iterations by @Yuval-Ariel in #796
stress test: Disable IsDone assertion which fails with tracing sometimes by @Yuval-Ariel in #816
812 stress test error initiateflushesthread assertion fail num running flushes 0 by @udi-speedb in #817
Miscellaneous
Options: Set compaction_readahead_size default to 0 by @Yuval-Ariel in #792
Options: Set level_compaction_dynamic_level_bytes as false by default by @Yuval-Ariel in #791
stress test: Add the ability to trace all operations by @Yuval-Ariel in #797
zlib: Update ci and Makefile using a different link by @Yuval-Ariel in #820
Revert "added exit 0 to the license check" by @Yuval-Ariel in #790
Compaction: Restore SetupForCompaction functionality by @Yuval-Ariel in #788
Known Issue
With this release, user-defined timestamps are not supported.
Full Changelog: https://github.com/speedb-io/speedb/commits/speedb/v2.8.0
v2.7.0
Release date: 25-October-2023
The following release is based on RocksDB 8.1.1
New Features
Support Non-Blocking Manual Compactions (CompactRange) (#597) by @udi-speedb in #656
Enhancements
Logger: Add reporting capabilities to the WBM by @Yuval-Ariel in #556
Report static pinning options to the log (#691) by @udi-speedb in #707
Enable-Speedb-Feature: Use Scoped Pinning Policy instead of Default Policy by @udi-speedb in #715 Note: We recommend only using Enable-Speedb-feature in POC with this release, since the configuration set by Enable-Speedb-feature might not be saved after recovery.
Make a static pinning decision based on the last level with data (not bottommost level) (#626) by @udi-speedb in #684
db bench: usability of the pinning policy parameter by @udi-speedb in #720
Static Pinning: Set the default for last-level-with-data to 70 by @udi-speedb in #727
Bug Fixes
Fixed a JAVA build issue introduced by #597 (#680) by @udi-speedb in #681
db_bench: Fixed a conflict between the enable_speedb_features and pinning_policy flags by @udi-speedb in #730
Miscellaneous
db_bench: fix SeekRandomWriteRandom valid check by @Yuval-Ariel in #652
Fixed some build issues by @mrambacher in #664
Fixed Java Samples by @mrambacher in #721
Add support for ASAN builds on Mac by @mrambacher in #608.
Fixed a compilation error in scoped_pinning_policy.cc by @udi-speedb in #725
Change Configurable::SerializeOptions method to return a map by @mrambacher in #619
Thanks to the new contributor! 💙
v2.6.0
Release date: 22-August-2023 | Based on RocksDB 8.1.1
New Features
Introduce a TablePinningPolicy to control how and when memory is pinned by @mrambacher in #459
Added Speedb tuning function that optimizes configuration for single and multi databases by @RoyBenMoshe in #543
Miscellaneous
Redo of Index/Filter/Data blocks sizes in Block (LRU) Block Cache per CF after rebase on RocksDB 8.1 (#516) by @udi-speedb in #620
Bug Fixes
WriteController: move it to public interface by @Yuval-Ariel in #579
Fixed log trace of Block Cache (Entry) Stats dump (#577) by @udi-speedb in #578
Added consideration to flushes that were not initiated by the write buffer manager by @udi-speedb in #632
Full Changelog: speedb/v2.5.0...speedb/v2.6.0
v2.5.0
Release date: 14-June-2023 | Based on RocksDB 8.1.1
New Features
Dirty memory: connect wbm to global delay : Delay writes gradually based on memory usage of the WriteBufferManager (WBM) in order to gain stability. To use this feature, pass allow_stall = true to the ctor of WBM and the db needs to be opened with options.use_dynamic_delay = true. by @Yuval-Ariel in #423
Prevent flush entry followed delete operations currently during memtable flush , if the key has a match key in the delete range table and this record has no snapshot related to it, we still write it with its value to the SST file. This feature keeps only the delete record and reduces SST size for later compaction. by @ayulas in #418 (#411)
Enhancements
Log: Add the CF name and job ID to all compaction job traces by @udi-speedb in #511
Log: Display cf names in rolled logs with their options by @udi-speedb in #518
Log: Report the name of cf-s whose options are skipped in the log by @udi-speedb in #520
db_stress: Add cost_write_buffer_to_cache flag by @udi-speedb in #513
Bug Fixes
Sanitize max_num_parallel_flushes in WBM if 0 by @udi-speedb in #515
WriteController: fix for stop while shutting down. Also switch to waiting a sec on the CV each time. This is required since a bg error * doesn't signal the CV in the WriteController. by @Yuval-Ariel in #499
Fixed UnlockWALStallCleared test in utilities/transactions/transaction_test.cc by @Yuval-Ariel in #514
Always assume optimize_filters_for_memory=false when creating a paired bloom filter by @udi-speedb in #528
db_bench and stress: fixed WBM initiation by @udi-speedb in #510
db_bench: Create a WBM once for all db-s regardless of their use in different groups by @udi-speedb in #551
Makefile: Remove pycache artifacts after running gtest-parallel #495
AVX512: fix disabling other optimizations by @Yuval-Ariel in #489 #489
Miscellaneous
Print optimize_filters_for_memory option to the log by @udi-speedb in #537
Full Changelog: https://github.com/speedb-io/speedb/commits/speedb/v2.5.0
v2.4.0
Release date: 5-April-2023 | Based on RocksDB 7.7.8
New Features
New beezcli: Interactive CLI that offers data access and admin commands #427
Global delayed write rate: manage the delayed write rate across multiple CFs/databases #392
New write flow: Major improvement of writing while reading. Note: This feature is experimental and it consumes slightly more memory in this release #445
Enhancements
Skip expired object while using DBWithTtl #403
Bug Fixes
Dynamic delay writes: fix pending bytes rate calculation #451
Global delay write: check again credits under mutex #438
Miscellaneous
Add back accidental revert in DropRandomUnsyncedData #402
Add speedb licenses to code #409
Enforce writing licenses inside a source file #410
Makefile: Use speedb libs in
build_size
target #399Replace uint with unsinged int (Windows Build Failure) #421
crashtest: dont reroll skip_list or HashSpdRepFactory #452
options: Forward declare WriteBufferManager #433
v2.3.0
Release date: 15-February-2023 | Based on RocksDB 7.7.8
New Feature
New Live configuration changes: support changing immutable options on the fly #294
Enhancements
Improved performance while using the sorted-hash memtable #299
Added prints and query option of Index size per CF - LRU Cache Only #368
Add F_BARRIERFSYNC for Sync operations on MacOS (addresses the issue raised in rocksdb#11035) #319
Paired-Bloom-Filter: Balancing rounding to batches between the bottom-most level and other levels #371
db_bench: recreate only specified DBs in a group of benchmarks #370
Bug Fixes
Delayed Writes: fix L0 calc bug #311
util: Fixed compilation failure on Fedora 35 with gcc 11.2.1 and gflag 2.2.2 #396
Fixed compilation failure on windows #384
Fixed compilation issues on Mac by #393
Use the Test Name for the dbname when running unit tests #353
Miscellaneous
v2.2.0
Release date: 22-December-2022 | Based on RocksDB 7.7.3
New Features
Proactive flushes for better resources utilization #185
Dynamic delayed write mechanism for consistent performance #2
Enhancements
Paired block bloom: Removed the bits-per-key limitation for better results #163
DB-bench groups support: Allow running multiple benchmark, each with its own configuration #250
db_bench: Support '--groups' in addition to '-groups' #295
db_stress enhancement: Support control over WBM's allow_stall #289
Shorten latency while switch generic memtable #297
Bug Fixes
db_bench: bug fix inserted #265
db_bench: ErrorExit from static func bug #278
Proactive Flushes: compilation warnings fix #307
Miscellaneous
v2.1.1
Release date: 15-November-2022 | Based on RocksDB 7.2.2
Bug Fixes
Shorten latency while switch memtable (#14)
Fixed a crash that occurred when using the hash memtable. (#98)
memtable_list: avoid rolling back memtable flush on CF drop (#144)
crashtest: fix 0 value of data_block_hash_table_util_ratio (#214)
deletefile_test: fix breakage caused by the compaction threads change (#218)
cmake: clean up on successful runs and randomise test scheduling (#202)
build: add a version build-tag for non-release builds (#156)
build: support ccache and sccache in the Makefile build (#170)
Update README.md
docs: fix instructions for building Speedb in README.md and INSTALL.md
readme typo fix by @azmisaquib (#223)
build_version: apply the build tag to the Speedb version string (#231)
build: correctly handle merge commits when calculating a build tag (#207)
db_test2: fix BackgroundPurgeTest (#236)
Update HISTORY.md (#239)
db_bench: Fix a bug when destructing a Benchmark with multiple db-s (#234)
db_bench: add benchmark - seektodeletedranges (#201)
v2.1.0
Release date: 26-October-2022 | Based on RocksDB 7.2.2
New Features
Added new Paired bloom filter that reduces false positive rate with the same performance and memory. In some configurations, the memory consumption is even reduced by up to 30%. Note: Paired bloom filter is recommended to use when the number of bits per key is larger than 10. (#54)
Added Plugin Tests to builds (#143)
Enhancements
The default value for the number of compaction threads has changed to 8 (#194)
An infrastructure addition for a future feature: added API to retrieve the amount of immutable memory that can be freed. (#113)
cmake: allow running the tests in parallel like in the Makefile (#103)
build: fix the java test target dependencies (#129)
flush_job: do not roll back memtable flush on CF drop and DB shutdown (#127)
When background purges are used, set their priority to low instead of high, (#151)
Added db_bench option to change the parameter: avoid_unnecessary_blocking_io (#184)
Allow construction of Filter Policy from uri to the tools (#83)
Miscellaneous
v2.0.0
Release date: 04-August-2022 | Based on RocksDB 7.2.2
New Features
Added a new hash based memtable that supports concurrent reads and writes
Added ability to create MemTableFactory from URI/string to tools
Bug Fixes
Avoid comparing Status using == as it compares only status codes. The comparison breaks when comparing against status::NoSpace() since it has a status code of
Code::kIOError
and only a subcode ofSubCode::kNoSpace
Fixed snapshots leak in optimistic_transaction_example: whenever the example is run under ASan, snapshots are acquired but not released, resulting in a memory leak error.
ldb: fix get to print the entire value
db_bench: fix Rocksdb bug of last_ref assertion. Test fails to delete multi-dbs correctly.
db_bench: fix SeekRandom and ReadRandomWriteRandom to work on all CFs instead of the default
db_bench to report accurate response time when using rate limit
db_test: add test for - forward the incomplete status on no_io (facebook/rocksdb#8485)
CMake: use the old plugin infra and add support for *_FUNC registration
Miscellaneous
LOG: Print write_buffer_manager size to LOG
LOG: change log header to SpeeDB
LOG & db_bench: metadata_cache_options - print to LOG and support its configuration in db_bench
db_impl: use unique_ptr in DBImpl::Open for nicer memory management
Explicitly compare the SuperVersion pointer in column_family
Rename rocksdb threads to speedb
Add a version number to Speedb builds
Clang-Format: Do not include third-party code as any changes are either version updates or fixes.
Git: add clangd cache to .gitignore
Last updated