Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: bump rocksdb to v9.7.4 #2639

Merged
merged 3 commits into from
Nov 3, 2024
Merged

Conversation

aleksraiden
Copy link
Contributor

Bump rocksdb to v9.7.4, full changelog here - https://github.com/facebook/rocksdb/releases/tag/v9.7.4

Important: Issue with blob files leak (see: #2604) has been fixed in this version (in details - facebook/rocksdb#13066)

Key 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 a prefix_extractor. When prefix_seek_opt_in_only=true, which is expected to be the future default, prefix seek is only used when prefix_same_as_start or auto_prefix_mode are set. Also, prefix_same_as_start and auto_prefix_mode now allow prefix filtering even with total_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.
  • 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
  • Set write_dbid_to_manifest=true by default. This means DB ID will now be preserved through backups, checkpoints, etc. by default. Also add write_identity_file option which can be set to false for anticipated future behavior.
  • In FIFO compaction, compactions for changing file temperature will compact one file at a time, instead of merging multiple eligible file together
  • Support ingesting db generated files using hard link
  • 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
  • Fix handling of dynamic change of prefix_extractor with memtable prefix filter. Previously, prefix seek could mix different prefix interpretations between memtable and SST files.
  • Fix a bug with manual_wal_flush and auto error recovery from WAL failure that may cause CFs to be inconsistent. The fix will set potential WAL write failure as fatal error
  • Skip insertion of compressed blocks in the secondary cache if the lowest_used_cache_tier DB option is kVolatileTier.
  • 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.
  • 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 a bug for surfacing write unix time: Iterator::GetProperty("rocksdb.iterator.write-time") for non-L0 files.
  • Fix a leak of obsolete blob files left open until DB::Close(). This bug was introduced in version 9.4.0.

Copy link

sonarqubecloud bot commented Nov 2, 2024

@PragmaTwice PragmaTwice merged commit 4b50c9b into unstable Nov 3, 2024
61 of 62 checks passed
@PragmaTwice PragmaTwice deleted the aleksraiden-patch-rocksdb-9.7.4 branch November 7, 2024 05:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants