This page summarize information about new features, bugs fixes and enhancements per release.
Speedb 2.8.0 (31-January-2024)
The following release is based on RocksDB 8.6.7
New Features
Memory Tracking: provides insights about the memory consumption per component. This works in debug mode only. by in
Enhancements
Add JAVA and C Interface for EnableSpeedbFeatures by in
LOG Enhancement:Have a separate LOG entry per CF Stats by in
Export GetFlushReasonString/GetCompactionReasonString in listener.h by in
Bug Fixes
stress test: Fixed TestIterateAgainstExpected not supporting 0 iterations by in
Fixed conflicts between db_bench flags and enable speedb features flag by in
stress test: Disable IsDone assertion which fails with tracing sometimes by in
Refresh exist iterator isnot supported in hash spdb and vector memtablerep should avoid that () by in
812 stress test error initiateflushesthread assertion fail num running flushes 0 by in
Miscellaneous
Options: Set compaction_readahead_size default to 0 by in
Options: Set level_compaction_dynamic_level_bytes as false by default by in
stress test: Add the ability to trace all operations by in
zlib: Update ci and Makefile using a different link by in
Remove some db stress non existence parameters by in
Revert "added exit 0 to the license check" by in
Compaction: Restore SetupForCompaction functionality by in
Add more checks for db_stress enable speedb features by in
Known Issue
With this release, user-defined timestamps are not supported.
Full Changelog:
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) () by in
Enhancements
Logger: Add reporting capabilities to the WBM by in
Report static pinning options to the log () by in
Add the offset and size to the dump SST footer details by in
653: Support hash spdb as part of enable Speedb features by in
Enable-Speedb-Feature: Use Scoped Pinning Policy instead of Default Policy by in
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) () by in
db bench: usability of the pinning policy parameter by in
Static Pinning: Set the default for last-level-with-data to 70 by in
Bug Fixes
Fixed repeatable threads not working with on thread start feature by in
Fixed a JAVA build issue introduced by () by in
db_bench: Fixed a conflict between the enable_speedb_features and pinning_policy flags by in
Miscellaneous
db_bench: fix SeekRandomWriteRandom valid check by in
Fixed unused variable warnings in db_bench_tool.cc by in
Add MacOS support for thread affinity tests by in
Fixed some build issues by in
Fixed build errors by in
Fixed Java Samples by in
Add support for ASAN builds on Mac by in .
Fixed a compilation error in scoped_pinning_policy.cc by in
Change Configurable::SerializeOptions method to return a map by in
Thanks to the new contributor! 💙
made their first contribution in
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 in
Snapshot Optimization () by in
Added Speedb tuning function that optimizes configuration for single and multi databases by in
Support Speedb sorted hash memtable in Java and C by in
Add on thread start callback by in
Miscellaneous
Redo of Index/Filter/Data blocks sizes in Block (LRU) Block Cache per CF after rebase on RocksDB 8.1 () by in
Move to zlib 1.3 (Makefile) by in
639: move hashSpdb memtable from plugin to main code by in
Bug Fixes
WriteController: move it to public interface by in
Fixed log trace of Block Cache (Entry) Stats dump () by in
Added consideration to flushes that were not initiated by the write buffer manager by in
606 stuck switch with plug by in
570 spdb memtable use seek paralel threshold mishandled by in
Full Changelog:
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 in
, 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 in ()
Enhancements
Log: Add the CF name and job ID to all compaction job traces by in
Log: Display cf names in rolled logs with their options by in
Log: Report the name of cf-s whose options are skipped in the log by in
db_stress: Add cost_write_buffer_to_cache flag by in
Bug Fixes
Fixed sorted hash memtable use after free bug by in
Sanitize max_num_parallel_flushes in WBM if 0 by in
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 in
Fixed UnlockWALStallCleared test in utilities/transactions/transaction_test.cc by in
Always assume optimize_filters_for_memory=false when creating a paired bloom filter by in
db_bench and stress: fixed WBM initiation by in
db_bench: Create a WBM once for all db-s regardless of their use in different groups by in
Fixed Tombstone test failure as a result of not clear local variable by in
Makefile: Remove pycache artifacts after running gtest-parallel
AVX512: fix disabling other optimizations by in
Miscellaneous
Print optimize_filters_for_memory option to the log by in
Full Changelog:
v2.4.1
Release date: 19-April-2023 | Based on RocksDB 7.7.8
Enhancement
Add the ability to create any Filter Policy in java (including ribbon filter and the Speedb paired bloom filter)
Bug Fix
Write Flow: Reduce debug log size. Note: the write flow is still experimental in this release
v2.4.0
Release date: 5-April-2023 | Based on RocksDB 7.7.8
New Features
Enhancements
Bug Fixes
Miscellaneous
v2.3.0
Release date: 15-February-2023 | Based on RocksDB 7.7.8
New Feature
Enhancements
Bug Fixes
Miscellaneous
v2.2.1
Release date: 30-January-2023 | Based on RocksDB 7.7.8
Bug Fixes
Miscellaneous
v2.2.0
Release date: 22-December-2022 | Based on RocksDB 7.7.3
New Features
Enhancements
Bug Fixes
Miscellaneous
v2.1.1
Release date: 15-November-2022 | Based on RocksDB 7.2.2
Bug Fixes
Update README.md
docs: fix instructions for building Speedb in README.md and INSTALL.md
v2.1.0
Release date: 26-October-2022 | Based on RocksDB 7.2.2
New Features
Enhancements
Miscellaneous
v2.0.0
Release date: 04-August-2022 | Based on RocksDB 7.2.2
New Features
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 of SubCode::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
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
Interactive CLI that offers data access and admin commands
: manage the delayed write rate across multiple CFs/databases
: Major improvement of writing while reading. Note: This feature is experimental and it consumes slightly more memory in this release
Fixed a crash that occurred when using the hash memtable. ()
memtable_list: avoid rolling back memtable flush on CF drop ()
crashtest: fix 0 value of data_block_hash_table_util_ratio ()
deletefile_test: fix breakage caused by the compaction threads change ()
cmake: clean up on successful runs and randomise test scheduling ()
build: add a version build-tag for non-release builds ()
build: support ccache and sccache in the Makefile build ()
readme typo fix by ()
build_version: apply the build tag to the Speedb version string ()
build: correctly handle merge commits when calculating a build tag ()
db_test2: fix BackgroundPurgeTest ()
Update HISTORY.md ()
db_bench: Fix a bug when destructing a Benchmark with multiple db-s ()
db_bench: add benchmark - seektodeletedranges ()
Added new 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. ()
Added Plugin Tests to builds ()
The default value for the number of compaction threads has changed to 8 ()
An infrastructure addition for a future feature: added API to retrieve the amount of immutable memory that can be freed. ()
cmake: allow running the tests in parallel like in the Makefile ()
build: fix the java test target dependencies ()
flush_job: do not roll back memtable flush on CF drop and DB shutdown ()
When background purges are used, set their priority to low instead of high, ()
Added db_bench option to change the parameter: avoid_unnecessary_blocking_io ()
Allow construction of Filter Policy from uri to the tools ()
Remove the GPL as an alternative license ()
Fix shell tab-completions in makefile ()
Added Speedb change-log to the HISTORY.md file ()
makefile: rework the dependency graph for faster test runs startup ()
Change the name of the output artifacts to Speedb ()
Added a new that supports concurrent reads and writes
db_test: add test for - forward the incomplete status on no_io ()