diff --git a/HISTORY.md b/HISTORY.md index 234780a740..cf060aa419 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,25 @@ # Rocksdb Change Log > NOTE: Entries for next release do not go here. Follow instructions in `unreleased_history/README.txt` +## 9.5.0 (07/19/2024) +### Public API Changes +* Introduced new C API function rocksdb_writebatch_iterate_cf for column family-aware iteration over the contents of a WriteBatch +* Add support to ingest SST files generated by a DB instead of SstFileWriter. This can be enabled with experimental option `IngestExternalFileOptions::allow_db_generated_files`. + +### Behavior Changes +* When calculating total log size for the `log_size_for_flush` argument in `CreateCheckpoint` API, the size of the archived log will not be included to avoid unnecessary flush + +### Bug Fixes +* Fix a major bug in which an iterator using prefix filtering and SeekForPrev might miss data when the DB is using `whole_key_filtering=false` and `partition_filters=true`. +* Fixed a bug where `OnErrorRecoveryBegin()` is not called before auto recovery starts. +* Fixed a bug where event listener reads ErrorHandler's `bg_error_` member without holding db mutex(#12803). +* Fixed a bug in handling MANIFEST write error that caused the latest valid MANIFEST file to get deleted, resulting in the DB being unopenable. +* Fixed a race between error recovery due to manifest sync or write failure and external SST file ingestion. Both attempt to write a new manifest file, which causes an assertion failure. + +### Performance Improvements +* Fix an issue where compactions were opening table files and reading table properties while holding db mutex_. +* Reduce unnecessary filesystem queries and DB mutex acquires in creating backups and checkpoints. + ## 9.4.0 (06/23/2024) ### New Features * Added a `CompactForTieringCollectorFactory` to auto trigger compaction for tiering use case. diff --git a/include/rocksdb/version.h b/include/rocksdb/version.h index 26c69ca41b..f1bc9f987e 100644 --- a/include/rocksdb/version.h +++ b/include/rocksdb/version.h @@ -12,7 +12,7 @@ // NOTE: in 'main' development branch, this should be the *next* // minor or major version number planned for release. #define ROCKSDB_MAJOR 9 -#define ROCKSDB_MINOR 5 +#define ROCKSDB_MINOR 6 #define ROCKSDB_PATCH 0 // Do not use these. We made the mistake of declaring macros starting with diff --git a/tools/check_format_compatible.sh b/tools/check_format_compatible.sh index 8bbf3ae580..89ca0971cb 100755 --- a/tools/check_format_compatible.sh +++ b/tools/check_format_compatible.sh @@ -125,7 +125,7 @@ EOF # To check for DB forward compatibility with loading options (old version # reading data from new), as well as backward compatibility -declare -a db_forward_with_options_refs=("8.6.fb" "8.7.fb" "8.8.fb" "8.9.fb" "8.10.fb" "8.11.fb" "9.0.fb" "9.1.fb" "9.2.fb" "9.3.fb" "9.4.fb") +declare -a db_forward_with_options_refs=("8.6.fb" "8.7.fb" "8.8.fb" "8.9.fb" "8.10.fb" "8.11.fb" "9.0.fb" "9.1.fb" "9.2.fb" "9.3.fb" "9.4.fb" "9.5.fb") # To check for DB forward compatibility without loading options (in addition # to the "with loading options" set), as well as backward compatibility declare -a db_forward_no_options_refs=() # N/A at the moment diff --git a/unreleased_history/behavior_changes/checkpoint_log_flush_improve.md b/unreleased_history/behavior_changes/checkpoint_log_flush_improve.md deleted file mode 100644 index f43e94c3f4..0000000000 --- a/unreleased_history/behavior_changes/checkpoint_log_flush_improve.md +++ /dev/null @@ -1 +0,0 @@ -When calculating total log size for the `log_size_for_flush` argument in `CreateCheckpoint` API, the size of the archived log will not be included to avoid unnecessary flush diff --git a/unreleased_history/bug_fixes/0seek_for_prev_prefix.md b/unreleased_history/bug_fixes/0seek_for_prev_prefix.md deleted file mode 100644 index 24c2360a55..0000000000 --- a/unreleased_history/bug_fixes/0seek_for_prev_prefix.md +++ /dev/null @@ -1 +0,0 @@ -* Fix a major bug in which an iterator using prefix filtering and SeekForPrev might miss data when the DB is using `whole_key_filtering=false` and `partition_filters=true`. diff --git a/unreleased_history/bug_fixes/event_listener_not_called.md b/unreleased_history/bug_fixes/event_listener_not_called.md deleted file mode 100644 index 8e1140cfa1..0000000000 --- a/unreleased_history/bug_fixes/event_listener_not_called.md +++ /dev/null @@ -1 +0,0 @@ -Fixed a bug where `OnErrorRecoveryBegin()` is not called before auto recovery starts. diff --git a/unreleased_history/bug_fixes/event_listener_race_with_error_handler.md b/unreleased_history/bug_fixes/event_listener_race_with_error_handler.md deleted file mode 100644 index 5c7f0bd592..0000000000 --- a/unreleased_history/bug_fixes/event_listener_race_with_error_handler.md +++ /dev/null @@ -1 +0,0 @@ -Fixed a bug where event listener reads ErrorHandler's `bg_error_` member without holding db mutex(#12803). \ No newline at end of file diff --git a/unreleased_history/bug_fixes/handle_manifest_error.md b/unreleased_history/bug_fixes/handle_manifest_error.md deleted file mode 100644 index 26f51da9ca..0000000000 --- a/unreleased_history/bug_fixes/handle_manifest_error.md +++ /dev/null @@ -1 +0,0 @@ -Fixed a bug in handling MANIFEST write error that caused the latest valid MANIFEST file to get deleted, resulting in the DB being unopenable. diff --git a/unreleased_history/bug_fixes/manifest_recovery_ingest_race.md b/unreleased_history/bug_fixes/manifest_recovery_ingest_race.md deleted file mode 100644 index 3a9c2eb5b7..0000000000 --- a/unreleased_history/bug_fixes/manifest_recovery_ingest_race.md +++ /dev/null @@ -1 +0,0 @@ -Fixed a race between error recovery due to manifest sync or write failure and external SST file ingestion. Both attempt to write a new manifest file, which causes an assertion failure. diff --git a/unreleased_history/performance_improvements/compaction-io-mutex.md b/unreleased_history/performance_improvements/compaction-io-mutex.md deleted file mode 100644 index 42c2952ec9..0000000000 --- a/unreleased_history/performance_improvements/compaction-io-mutex.md +++ /dev/null @@ -1 +0,0 @@ -* Fix an issue where compactions were opening table files and reading table properties while holding db mutex_. \ No newline at end of file diff --git a/unreleased_history/performance_improvements/sorted_wals.md b/unreleased_history/performance_improvements/sorted_wals.md deleted file mode 100644 index b585a9572b..0000000000 --- a/unreleased_history/performance_improvements/sorted_wals.md +++ /dev/null @@ -1 +0,0 @@ -* Reduce unnecessary filesystem queries and DB mutex acquires in creating backups and checkpoints. diff --git a/unreleased_history/public_api_changes/expose_writebatch_iterator_cf_methods_via_c_api.md b/unreleased_history/public_api_changes/expose_writebatch_iterator_cf_methods_via_c_api.md deleted file mode 100644 index 34315951fc..0000000000 --- a/unreleased_history/public_api_changes/expose_writebatch_iterator_cf_methods_via_c_api.md +++ /dev/null @@ -1 +0,0 @@ -Introduced new C API function rocksdb_writebatch_iterate_cf for column family-aware iteration over the contents of a WriteBatch \ No newline at end of file diff --git a/unreleased_history/public_api_changes/ingest_live_db_file.md b/unreleased_history/public_api_changes/ingest_live_db_file.md deleted file mode 100644 index 55afc46a05..0000000000 --- a/unreleased_history/public_api_changes/ingest_live_db_file.md +++ /dev/null @@ -1 +0,0 @@ -* Add support to ingest SST files generated by a DB instead of SstFileWriter. This can be enabled with experimental option `IngestExternalFileOptions::allow_db_generated_files`. \ No newline at end of file