diff --git a/HISTORY.md b/HISTORY.md index 718784553c..f83c75fbf9 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,18 @@ # Rocksdb Change Log > NOTE: Entries for next release do not go here. Follow instructions in `unreleased_history/README.txt` +## 11.6.0 (07/02/2026) +### New Features +* Added EXPERIMENTAL embedded blob SST support through `SstFileWriter::OpenWithEmbeddedBlobs()`, storing eligible large values as same-file blob records in block-based SST files and resolving them transparently for reads. This niche feature currently supports uncompressed embedded blobs only; compression options are placeholders and compression support is deferred to follow-up work. + +### Public API Changes +* Expanded the C API (`include/rocksdb/c.h`) with a large set of new `rocksdb_*` functions, mostly option getters/setters plus table-properties, job/event-listener, and metadata accessors, a WAL filter, a ReadOptions table filter, and a backup exclude-files callback. Many are now produced by a new semi-automated generator (`tools/c_api_gen/`) from the C++ headers; `include/rocksdb/c.h` remains a single self-contained header and the signatures of pre-existing functions are unchanged. + +### Bug Fixes +* Reverted PR14831 that made range_lock_manager aware of reverse-order CF +* Fixed a bug in `RandomAccessFileReader::ReadAsync` where an already-aligned direct-IO read request with a null `scratch` and a caller-provided `aligned_buf` would take the "already aligned" fast path and submit the null buffer to the underlying async read (e.g. a null iovec base to io_uring, failing with EFAULT). This could surface as spurious iterator failures during async prefetch (MultiScan with async IO) on direct-IO databases. The async path now allocates a backing buffer in this case, matching the synchronous `Read` path. +* Fixed a bug where closing a read-only DB instance could delete live SST files created by a concurrent read-write DB sharing the same directory. + ## 11.5.0 (06/16/2026) ### New Features * External table readers that open files through `ExternalTableOptions::fs` now update RocksDB SST/file-read statistics and file IO listener callbacks, making external file IO activity visible in existing read metrics. diff --git a/include/rocksdb/version.h b/include/rocksdb/version.h index f9a83d7f88..9a09bd123b 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 11 -#define ROCKSDB_MINOR 6 +#define ROCKSDB_MINOR 7 #define ROCKSDB_PATCH 0 // Make it easy to do conditional compilation based on version checks, i.e. diff --git a/tools/check_format_compatible.sh b/tools/check_format_compatible.sh index fe74bb8de0..6c6689dea1 100755 --- a/tools/check_format_compatible.sh +++ b/tools/check_format_compatible.sh @@ -161,7 +161,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=("10.4.fb" "10.5.fb" "10.6.fb" "10.7.fb" "10.8.fb" "10.9.fb" "10.10.fb" "10.11.fb" "11.0.fb" "11.1.fb" "11.2.fb" "11.3.fb" "11.4.fb" "11.5.fb") +declare -a db_forward_with_options_refs=("10.4.fb" "10.5.fb" "10.6.fb" "10.7.fb" "10.8.fb" "10.9.fb" "10.10.fb" "10.11.fb" "11.0.fb" "11.1.fb" "11.2.fb" "11.3.fb" "11.4.fb" "11.5.fb" "11.6.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/bug_fixes/range_lock_manager_fix_revert.md b/unreleased_history/bug_fixes/range_lock_manager_fix_revert.md deleted file mode 100644 index e5de532608..0000000000 --- a/unreleased_history/bug_fixes/range_lock_manager_fix_revert.md +++ /dev/null @@ -1 +0,0 @@ -Reverted PR14831 that made range_lock_manager aware of reverse-order CF diff --git a/unreleased_history/bug_fixes/read_async_direct_io_null_scratch.md b/unreleased_history/bug_fixes/read_async_direct_io_null_scratch.md deleted file mode 100644 index 6cdbd139c3..0000000000 --- a/unreleased_history/bug_fixes/read_async_direct_io_null_scratch.md +++ /dev/null @@ -1 +0,0 @@ -Fixed a bug in `RandomAccessFileReader::ReadAsync` where an already-aligned direct-IO read request with a null `scratch` and a caller-provided `aligned_buf` would take the "already aligned" fast path and submit the null buffer to the underlying async read (e.g. a null iovec base to io_uring, failing with EFAULT). This could surface as spurious iterator failures during async prefetch (MultiScan with async IO) on direct-IO databases. The async path now allocates a backing buffer in this case, matching the synchronous `Read` path. diff --git a/unreleased_history/bug_fixes/read_only_close_no_delete.md b/unreleased_history/bug_fixes/read_only_close_no_delete.md deleted file mode 100644 index 0d48e4204c..0000000000 --- a/unreleased_history/bug_fixes/read_only_close_no_delete.md +++ /dev/null @@ -1 +0,0 @@ -Fixed a bug where closing a read-only DB instance could delete live SST files created by a concurrent read-write DB sharing the same directory. diff --git a/unreleased_history/new_features/embedded_blob_sst_writer.md b/unreleased_history/new_features/embedded_blob_sst_writer.md deleted file mode 100644 index 25f4bfce51..0000000000 --- a/unreleased_history/new_features/embedded_blob_sst_writer.md +++ /dev/null @@ -1 +0,0 @@ -Added EXPERIMENTAL embedded blob SST support through `SstFileWriter::OpenWithEmbeddedBlobs()`, storing eligible large values as same-file blob records in block-based SST files and resolving them transparently for reads. This niche feature currently supports uncompressed embedded blobs only; compression options are placeholders and compression support is deferred to follow-up work. diff --git a/unreleased_history/public_api_changes/c_api_codegen_bindings.md b/unreleased_history/public_api_changes/c_api_codegen_bindings.md deleted file mode 100644 index d148596116..0000000000 --- a/unreleased_history/public_api_changes/c_api_codegen_bindings.md +++ /dev/null @@ -1 +0,0 @@ -Expanded the C API (`include/rocksdb/c.h`) with a large set of new `rocksdb_*` functions, mostly option getters/setters plus table-properties, job/event-listener, and metadata accessors, a WAL filter, a ReadOptions table filter, and a backup exclude-files callback. Many are now produced by a new semi-automated generator (`tools/c_api_gen/`) from the C++ headers; `include/rocksdb/c.h` remains a single self-contained header and the signatures of pre-existing functions are unchanged.