9.7.4 (10/31/2024)
Bug Fixes
- Fix a leak of obsolete blob files left open until DB::Close(). This bug was introduced in version 9.4.0.
9.7.3 (10/16/2024)
Behavior Changes
- OPTIONS file to be loaded by remote worker is now preserved so that it does not get purged by the primary host. A similar technique as how we are preserving new SST files from getting purged is used for this. min_options_file_numbers_ is tracked like pending_outputs_ is tracked.
9.7.2 (10/08/2024)
Bug Fixes
- Fix a bug for surfacing write unix time:
Iterator::GetProperty("rocksdb.iterator.write-time")
for non-L0 files.
9.7.1 (09/26/2024)
Bug Fixes
- Several DB option settings could be lost through
GetOptionsFromString()
, possibly elsewhere as well. Affected options, now fixed:background_close_inactive_wals
,write_dbid_to_manifest
,write_identity_file
,prefix_seek_opt_in_only
- Fix under counting of allocated memory in the compressed secondary cache due to looking at the compressed block size rather than the actual memory allocated, which could be larger due to internal fragmentation.
- Skip insertion of compressed blocks in the secondary cache if the lowest_used_cache_tier DB option is kVolatileTier.
9.7.0 (09/20/2024)
New Features
- Make Cache a customizable class that can be instantiated by the object registry.
- Add new option
prefix_seek_opt_in_only
that makes iterators generally safer when you might set aprefix_extractor
. Whenprefix_seek_opt_in_only=true
, which is expected to be the future default, prefix seek is only used whenprefix_same_as_start
orauto_prefix_mode
are set. Also,prefix_same_as_start
andauto_prefix_mode
now allow prefix filtering even withtotal_order_seek=true
. - Add a new table property "rocksdb.key.largest.seqno" which records the largest sequence number of all keys in file. It is verified to be zero during SST file ingestion.
Behavior Changes
- Changed the semantics of the BlobDB configuration option
blob_garbage_collection_force_threshold
to define
a threshold for the overall garbage ratio of all blob files currently eligible for garbage collection (accordin
g toblob_garbage_collection_age_cutoff
). This can provide better control over space amplification at the cos
t of slightly higher write amplification. - Set
write_dbid_to_manifest=true
by default. This means DB ID will now be preserved through backups, checkpo
ints, etc. by default. Also addwrite_identity_file
option which can be set to false for anticipated future b
ehavior. - In FIFO compaction, compactions for changing file temperature (configured by option
file_temperature_age_thr esholds
) will compact one file at a time, instead of merging multiple eligible file together (#13018). - Support ingesting db generated files using hard link, i.e. IngestExternalFileOptions::move_files/link_files a
nd IngestExternalFileOptions::allow_db_generated_files. - Add a new file ingestion option
IngestExternalFileOptions::link_files
to hard link input files and preserve
original files links after ingestion. - DB::Close now untracks files in SstFileManager, making avaialble any space used
by them. Prior to this change they would be orphaned until the DB is re-opened.
Bug Fixes
- Fix a bug in CompactRange() where result files may not be compacted in any future compaction. This can only h
appen when users configure CompactRangeOptions::change_level to true and the change level step of manual compac
tion fails (#13009). - Fix handling of dynamic change of
prefix_extractor
with memtable prefix filter. Previously, prefix seek cou
ld mix different prefix interpretations between memtable and SST files. Now the latestprefix_extractor
at th
e time of iterator creation or refresh is respected. - Fix a bug with manual_wal_flush and auto error recovery from WAL failure that may cause CFs to be inconsisten
t (#12995). The fix will set potential WAL write failure as fatal error when manual_wal_flush is true, and disa
bles auto error recovery from these errors.