Repository navigation
fix(deps): update dependency org.rocksdb:rocksdbjni to v11 - #2894
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/major-rocksdb
branch
from
October 26, 2026 23:49
9a30e8e to
69bf2f2
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
10.10.1.1→11.8.1Release Notes
facebook/rocksdb (org.rocksdb:rocksdbjni)
v11.8.1: RocksDB 11.8.111.8.1 (2026-07-28)
Public API Changes
DBOptions::read_io_executor_threadsto increase the maximum thread count of the shared filesystem read I/O executor used for asynchronous reads when opening a DB. Opening a DB never reduces the shared executor thread count. Change the experimentalFSRandomAccessFile::SubmitReadAsync()API to return whether the asynchronous path was used, and add theFILE_SUBMIT_ASYNC_READ_FALLBACKticker to count calls that fall back to synchronous reads.Performance Improvements
DBOptions::avoid_unnecessary_blocking_iois true, obsoleteOPTIONS-*files found during DB open are deleted by background purge instead of synchronously on the opening thread.11.8.0 (2026-07-28)
Public API Changes
DB::GetAsync()andDB::MultiGetAsync(). The idea is that when IO is required, RocksDB can suspend its internal coroutine read path, allowing the read executor thread to do other work. When the IO is complete, RocksDB invokes the user callback. This requires filesystem support for full performance benefits. A new filesystem APIFSRandomAccessFile::SubmitReadAsync()is introduced for this. UnlikeReadAsync, the filesystem is responsible for eventually calling the callback.FileSystem::GetReadExecutor()returns the IO executor whose EventBases run coroutine read processing. In the Posix filesystem, an IO-uring based event loop is used to complete the IO.FlushOptions::listener_wait(defaultfalse). When set together withFlushOptions::wait == true,DB::Flush()will not return until the registeredEventListener::OnFlushCompletedcallbacks for the flushed memtables have finished running. By default (false),Flush(wait=true)may return as soon as the flush result is committed, which can be before (or while) theOnFlushCompletedcallbacks execute on the background flush thread. Also added the corresponding C APIrocksdb_flushoptions_set_listener_wait()/rocksdb_flushoptions_get_listener_wait().PinnableWideColumns::serialized_size()in favor of the newPinnableWideColumns::payload_size(), which returns the total size of the columns' names and values (for a plain value this equals the value size). Relatedly, wide-column read accounting changed subtly: read statistics for entities (BYTES_READ,BYTES_PER_READ, and the per-key byte counts forGetEntity/MultiGetEntity) and theReadOptions::value_size_soft_limitthreshold now measure entities by this payload size instead of the serialized entity size. This drops serialization framing bytes from those measurements (so reported/limited sizes for entity reads are slightly smaller than before) and makes plain-value and wide-column accounting consistent.Behavior Changes
ReadOptions::value_size_soft_limitnow also bounds the blob values resolved from pre-flush blob direct write references duringMultiGet/MultiGetEntity(previously these were resolved after the limit check and read without bound). Enforcement is "always make progress": at least one key is read even if its value alone exceeds the limit, and only once the returned size exceeds the limit do subsequent keys getStatus::Aborted-- so a caller retrying the aborted keys cannot loop forever on a single value that by itself exceeds the limit.Performance Improvements
GetEntity/MultiGetEntity) and blob-backed memtable/direct-write read paths, resolving these columns no longer re-serializes the whole entity into a fresh buffer: inline columns are referenced in place in the pinned entity and each resolved blob value is referenced in place from its fetched buffer. This is enabled by an internal change toPinnableWideColumnsthat lets its columns reference multiple backing buffers.11.7.0 (2026-07-16)
Public API Changes
RangeLockManagerHandle::SetIsKilledCallback(), astd::function<bool()>predicate polled during range-lock waits. When it returns true, a blockedGetRangeLock()wait returns promptly withStatus::Aborted()instead of waiting for the lock timeout. Range-lock users that install no callback keep the original wait-until-grant-or-timeout behavior.MultiScanArgs::reverseto support reverse MultiScan reads over bounded scan ranges.Behavior Changes
LockWAL(), live-file capture APIs such as checkpoint and backup now flush WAL-disabled unpersisted data; they can block untilUnlockWAL()or returnAbortedwhen called from the same thread that holdsLockWAL()to avoid deadlock.UnlockWAL()must now also be called from the same thread that calledLockWAL().Performance Improvements
best_efforts_recovery, and slow catch-up of secondary and follower (read-only) instances, in which time and memory grew quadratically with the number of files in the DB (so the slowdown was worst for large DBs with long history).11.6.0 (2026-07-02)
New Features
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
include/rocksdb/c.h) with a large set of newrocksdb_*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.hremains a single self-contained header and the signatures of pre-existing functions are unchanged.Bug Fixes
RandomAccessFileReader::ReadAsyncwhere an already-aligned direct-IO read request with a nullscratchand a caller-providedaligned_bufwould 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 synchronousReadpath.11.5.0 (2026-06-16)
New Features
ExternalTableOptions::fsnow update RocksDB SST/file-read statistics and file IO listener callbacks, making external file IO activity visible in existing read metrics.DB::PrepareFileIngestion(), a two-phase form ofIngestExternalFile/IngestExternalFiles.PrepareFileIngestion()performs all of the work that does not require the DB mutex (validating the arguments, reading each external file's metadata, and linking/copying the files into the DB) and returns an opaqueFileIngestionHandle.DB::CommitFileIngestionHandle()(orDB::CommitFileIngestionHandles()for several handles at once) then makes the prepared files visible; multiple handles are committed atomically in a single MANIFEST write, or none are.FileIngestionHandle::Abort()(or simply destroying the handle) cancels a prepared ingestion and rolls it back. This gives flexibility to the application to Prepare a file separately from when its committed, and may shorten an applications critical path onIngestExternalFile.IngestExternalFile/IngestExternalFilescall, split by phase:rocksdb.ingest.external.file.prepare.micros(argument validation and reading/validating/linking the external files, which does not block live writes) androcksdb.ingest.external.file.run.micros(the ingestion performed under the DB mutex while live writes are blocked). Failed ingestions are not recorded.DBOptions::use_direct_io_for_compaction_reads(default false). When enabled, compaction-input SST reads useO_DIRECTwhile user reads remain buffered, avoiding page-cache eviction of hot user-read data by sequential compaction scans. Pair withuse_direct_io_for_flush_and_compaction = trueon write-heavy workloads for direct I/O on both compaction inputs and outputs. Rejected at Open when combined withallow_mmap_reads = true. No-op whenuse_direct_reads = trueis already set (since all reads are already direct).Public API Changes
DB::GetPreparedFileInfoForExternalSstIngestion()can now prepare metadata for a live DB-generated SST file so it can be passed toIngestExternalFileArg::file_infos. The input path must exactly match a live table file owned by the source DB, and the returned metadata handle must outlive the ingestion.ExternalSstFileInfogained aprepared_file_infomember produced bySstFileWriter::Finish, andIngestExternalFileArggained afile_infosfield: a vector of borrowedconst PreparedFileInfo*pointers, parallel toexternal_files. The owningExternalSstFileInfo::prepared_file_infohandle must outlive the ingestion. When set,IngestExternalFiles()reuses the supplied per-file metadata instead of re-opening and scanning each file to recompute it, avoiding that extra I/O.memtable_veirfy_per_key_checksum_on_seektomemtable_verify_per_key_checksum_on_seek. RocksDB continues to accept the old misspelled OPTIONS-file key for compatibility, while newly serialized OPTIONS files use the corrected key.ReadOptions::read_scoped_block_buffer_provider, for supported block-based table iterator scans and MultiScan reads to use caller-provided read-scoped storage for final data-block contents. When configured, supported provider-backed scan data-block reads bypass the data-block cache. The provider is ignored when mmap reads are enabled. RocksDB may still use ordinary temporary scratch for serialized block bytes, such as when a block may be compressed. Get and MultiGet do not currently provide API guarantees for this provider.FileSystem::SyncFile()andEnv::SyncFile()public APIs for syncing or fsyncing a file by name without requiring callers to reopen it as writable.Behavior Changes
compressionfor column families is nowkLZ4Compressionrather thankSnappyCompression. This affects only column families that do not explicitly setcompression, and only newly-written SST files. The change is fully compatible: existing data remains readable with no migration needed, as RocksDB selects the decompressor per block. LZ4 offers slightly better compression ratios and decompression CPU efficiency vs. Snappy and similar compression CPU, tested across various server CPUs. When support is not compiled in, the fallback path for default compression is LZ4 -> Snappy -> NoCompression.CompressionOptions::parallel_threads) for fast built-in compressors: Snappy, LZ4 (accelerated, not LZ4HC), and accelerated levels of ZSTD (level < 0). These do not generally benefit from parallel compression. This behavior can be overridden with a custom Compressor from a custom CompressionManager.PosixFileSystem::OptimizeForCompactionTableReadnow delegates to the baseFileSystem::OptimizeForCompactionTableReadimplementation before applying its Linux-only compaction-readahead clamp (added for #12038). The returnedFileOptions::use_direct_readstherefore reflectsDBOptions::use_direct_reads, consistent with the base class and with otherFileSystemimplementations. Previously the override ignored the base implementation and keyed both the returned options and the Linux readahead clamp off the incomingFileOptionsrather thanDBOptions. At the in-tree call site the incomingFileOptions::use_direct_readsalready matchesDBOptions::use_direct_reads, so this is effectively a no-op for existing configurations; it removes a latent inconsistency where a caller passingFileOptionswhoseuse_direct_readsdisagreed withDBOptionswould have had the global flag silently ignored for compaction-input reads on Linux. (Note: the#12038readahead clamp still keys off the globaluse_direct_reads; it is not skipped for the compaction-onlyuse_direct_io_for_compaction_readspath, since that flag enables O_DIRECT after this hook runs.)kLZ4CompressionandkLZ4HCCompressionby giving each access to the other's compression levels. Negative (fast) values previously only available to LZ4 and positive (slow) values previously only available to LZ4HC are now available to both, so configuring a non-defaultcompression_opts.levelnow selects the LZ4 compressor variant. This is a behavior change for previously tolerated but dubious configurations such as positive compression level withkLZ4Compression.kLZ4CompressionandkLZ4HCCompressionkeep their effective default levels, equivalent to -1 and 9 respectively.kZSTDcompression levels atcompression_opts.level == 0by mapping that setting tolevel = -1rather than tolevel = 3as the ZSTD library does internally. This improves the compression auto-tuning landscape.Bug Fixes
Performance Improvements
IngestExternalFileOptions::file_opening_threadsto open table readers for committed ingested files using multiple threads.IngestExternalFileOptions::prefetch_lmax_index_and_filter_blocks, which can skip commit-time index and filter block prefetching for cache-backed table metadata.11.4.0 (2026-06-02)
Public API Changes
rocksdb_options_set_memtable_batch_lookup_optimization()androcksdb_options_get_memtable_batch_lookup_optimization()to the C API, exposing the existingAdvancedColumnFamilyOptions::memtable_batch_lookup_optimizationfield. This allows C API users (and downstream language bindings) to enable the skip-list memtable's batch-lookup optimization forMultiGet, which caches the search path between consecutive keys and reduces per-key cost from O(log N) to O(log d) where d is the distance between consecutive keys.rocksdb_readoptions_set_optimize_multiget_for_io()androcksdb_readoptions_get_optimize_multiget_for_io()to the C API, exposing the existingReadOptions::optimize_multiget_for_iofield. This allows C API users (and downstream language bindings) to opt out of the multi-level parallel MultiGet path, which only takes effect when the library is built withUSE_COROUTINES.rocksdb_block_based_table_index_block_search_type_autoenum constant and therocksdb_block_based_options_set_uniform_cv_threshold()setter to the C API. The constant exposesBlockSearchType::kAuto, and the setter exposesBlockBasedTableOptions::uniform_cv_threshold. Both are required forkAutoindex-block search to take effect from the C API: without settinguniform_cv_threshold >= 0, the per-blockis_uniformfooter bit is never written, andkAutofalls back to binary search at read time.EventListener::OnDBShutdownBegin, a callback that fires once when a DB begins shutdown, including when RocksDB cleans up a failedDB::Open()attempt.blob_cache_read_bytefor blob cache bytes read.Behavior Changes
CompactionServiceResultbefore installing any remote output files.key=value;string (e.g. SetOptions) without losing inner ';' delimiters. A new symmetric MapToString utility is provided.Bug Fixes
AbortAllCompactions()could leave automatic compaction work unscheduled when aborting before the background worker picked it, causing compaction and write stalls until DB restart.has_accurate_num_input_records=falsenot being serialized.Performance Improvements
CreateColumnFamily(),DropColumnFamily(),CreateColumnFamilyWithImport(),IngestExternalFile(), andDeleteFilesInRanges()now get a relaxed file size threshold for triggering MANIFEST rotation; background-only MANIFEST write batches, such as compaction and flush, continue to use the normal threshold. This change should make auto-tuning manifest file size more attractive (seemax_manifest_file_sizeandmax_manifest_space_amp_pctoptions).11.3.0 (2026-05-15)
New Features
async_wal_precreateto precreate the next WAL file in a background thread and reduce foreground WAL rotation latency. The option is sanitized to false when WAL recycling is enabled.EventListener::OnCompactionPreCommitcallback that fires after a compaction job finishes but before its input files are released (i.e. whileFileMetaData::being_compactedis still true). Listeners that maintain bookkeeping of which files are currently being compacted can clean up such state in this new callback to avoid races with concurrent compaction picking, where another thread might pick up the same files for a new compaction immediately afterbeing_compactedis flipped back to false but beforeOnCompactionCompletedfires. The default implementation is a no-op so this is not a breaking change.optimize_manifest_for_recovery(default false). When enabled, RocksDB can reduce recovery work after a clean shutdown, which may lower DB::Open latency on warm reopens.ParseCompressionNameForDisplay()to convertTableProperties::compression_nameinto a human-readable compression name for both legacy and format_version 7+ SST metadata, including customCompressionManager-provided display names for custom compression types.reuse_manifest_on_openDBOption (default false). When enabled, DB::Open reuses the existing MANIFEST file for append instead of creating a fresh one, avoiding the cost of serializing the entire database state into a new MANIFEST on the first post-open write. To prevent this feature from interfering with manifest file size auto-tuning, an extra forward-compatible field is now always added to the MANIFEST (to track the last "compacted" size).Behavior Changes
error_if_wal_file_exists=truenow tolerates empty WAL files so empty precreated WALs do not prevent inspection.Bug Fixes
propagation and resolution across memtable, read-only, and secondary DB
paths.
DB::GetCreationTimeOfOldestFile()could return inaccurate results instead of the real creation time when called shortly after opening a legacy DB (one whose manifest lacksfile_creation_time) withopen_files_async = true. The API now waits for background SST file loading to complete only when needed; modern DBs are unaffected.GetMergeOperands()and direct-write memtable reads.DB::CreateColumnFamily/DB::CreateColumnFamilies. Previously such calls returned OK and a usable handle, but the column family was not persisted in the manifest, so any data written to it was silently lost on DB reopen.11.2.0 (2026-04-18)
New Features
DBOptions::fast_sst_openoption. When enabled, RocksDB retrieves opaque file system metadata for SST files after flush, compaction, and external file ingestion, persists it in the MANIFEST, and passes it back to the file system on subsequent file opens to accelerate DB open time.min_tombstones_for_range_conversioninAdvancedColumnFamilyOptions. When set to a non-zero value N, forward or reverse iteration will convert N or more contiguous point tombstones into a range tombstone in the mutable memtable. Future read operations will then be able to benefit from range tombstone optimizations. There are some limitations when it comes to table_filters, prefix_filters, and UDTs. See header comments for more details.read_triggered_compaction_threshold(default 0, disabled) that marks SST files for compaction when their read frequency (num_collapsible_entry_reads_sampled / file_size) exceeds the threshold. This helps reduce read amplification for frequently-read ("hot") keys. A new DB optionmax_compaction_trigger_wakeup_seconds(default 43200s / 12 hours) controls the maximum interval for periodic compaction score re-evaluation, which is necessary for this feature to work on quiet (no-write) databases.Public API Changes
WideColumnBlobResolverinterface andCompactionFilter::FilterV4()method, includingResolveColumn()/ResolveColumns()helpers for lazy loading blob column values in wide-column entities during compaction. This allows compaction filters to resolve blob values on-demand, avoiding unnecessary I/O for blob columns they don't need to access.ExternalTableReader::GetandExternalTableReader::MultiGetto usePinnableSliceinstead ofstd::stringfor output values, enabling zero-copy pinning. This will break existing implementations.SstFileReader::GetandSstFileReader::MultiGetoverloads that acceptPinnableSlice/std::vector<PinnableSlice>*, enabling zero-copy reads when the underlyingTableReadersupports pinning.Behavior Changes
Bug Fixes
v11.1.2: RocksDB 11.1.211.1.2 (2026-06-24)
Bug Fixes
11.1.1 (2026-04-10)
Public API Changes
ExternalTableReader::GetandExternalTableReader::MultiGetto usePinnableSliceinstead ofstd::stringfor output values, enabling zero-copy pinning. This will break existing implementations.SstFileReader::GetandSstFileReader::MultiGetoverloads that acceptPinnableSlice/std::vector<PinnableSlice>*, enabling zero-copy reads when the underlyingTableReadersupports pinning.Bug Fixes
11.1.0 (2026-03-23)
New Features
open_files_async. The existing behavior is on DB open, we open all sst files and do basic validations. For very large DBs on remote filesystems with many ssts, this may take very long. This option performs these validations instead in the background. Open errors found by this async background task are surfaced as a new background error kAsyncFileOpen.BlockBasedTableOptions::kAutoindex block search type that automatically selects between binary and interpolation search on a per-index-block basis. During SST construction, each index block's key distribution uniformity is analyzed using the coefficient of variation of key gaps, and index blocks with uniform keys use interpolation search while others fall back to binary search. The uniformity threshold is configurable viaBlockBasedTableOptions::uniform_cv_threshold(default: 0.2).memtable_batch_lookup_optimizationoption to use batch lookup optimization for memtable MultiGet. For skip list memtables, after each key lookup, the search path is cached and reused for the next key, reducing per-key cost from O(log N) to O(log d) where d is the distance between consecutive keys. Benchmarks show ~7% improvement in memtable-resident MultiGet throughput.BlockBasedTableOptions::PrepopulateBlockCache::kFlushAndCompactionto prepopulate the block cache during both flush and compaction. Compaction-warmed blocks are inserted atBOTTOMpriority (vsLOWfor flush) so they are evicted first under cache pressure. Recommended only for use cases where most or all of the database is expected to reside in cache (e.g., tiered or remote storage where the working set fits in cache).verify_manifest_content_on_close(default: false). When enabled, on DB close the MANIFEST file is read back and all records are validated (CRC checksums and logical content). If corruption is detected, a fresh MANIFEST is written from in-memory state.v11.1.1: RocksDB 11.1.111.1.1 (2026-04-10)
Public API Changes
ExternalTableReader::GetandExternalTableReader::MultiGetto usePinnableSliceinstead ofstd::stringfor output values, enabling zero-copy pinning. This will break existing implementations.SstFileReader::GetandSstFileReader::MultiGetoverloads that acceptPinnableSlice/std::vector<PinnableSlice>*, enabling zero-copy reads when the underlyingTableReadersupports pinning.Bug Fixes
11.1.0 (2026-03-23)
New Features
open_files_async. The existing behavior is on DB open, we open all sst files and do basic validations. For very large DBs on remote filesystems with many ssts, this may take very long. This option performs these validations instead in the background. Open errors found by this async background task are surfaced as a new background error kAsyncFileOpen.BlockBasedTableOptions::kAutoindex block search type that automatically selects between binary and interpolation search on a per-index-block basis. During SST construction, each index block's key distribution uniformity is analyzed using the coefficient of variation of key gaps, and index blocks with uniform keys use interpolation search while others fall back to binary search. The uniformity threshold is configurable viaBlockBasedTableOptions::uniform_cv_threshold(default: 0.2).memtable_batch_lookup_optimizationoption to use batch lookup optimization for memtable MultiGet. For skip list memtables, after each key lookup, the search path is cached and reused for the next key, reducing per-key cost from O(log N) to O(log d) where d is the distance between consecutive keys. Benchmarks show ~7% improvement in memtable-resident MultiGet throughput.BlockBasedTableOptions::PrepopulateBlockCache::kFlushAndCompactionto prepopulate the block cache during both flush and compaction. Compaction-warmed blocks are inserted atBOTTOMpriority (vsLOWfor flush) so they are evicted first under cache pressure. Recommended only for use cases where most or all of the database is expected to reside in cache (e.g., tiered or remote storage where the working set fits in cache).verify_manifest_content_on_close(default: false). When enabled, on DB close the MANIFEST file is read back and all records are validated (CRC checksums and logical content). If corruption is detected, a fresh MANIFEST is written from in-memory state.Behavior Changes
Bug Fixes
v11.0.411.0.4 (2026-03-11)
Public API Changes
11.0.3 (2026-03-03)
Public API Changes
11.0.2 (2026-02-26)
Public API Changes
11.0.0 (2026-02-23)
New Features
min_blob_sizeis configured, large column values in wide-column entities will be stored in blob files, reducing SST file size and improving read performance.CompactionOptionsFIFO::max_data_files_sizeto support FIFO compaction trimming based on combined SST and blob file sizes. AddedCompactionOptionsFIFO::use_kv_ratio_compactionto enable a capacity-derived intra-L0 compaction strategy optimized for BlobDB workloads, producing uniform-sized compacted files for predictable FIFO trimming.index_block_search_type. The default isbinary_search.Public API Changes
AbortAllCompactions()andResumeAllCompactions()to theDBclass. Added newStatus::SubCode::kCompactionAbortedto indicate a compaction was aborted. AddedStatus::IsCompactionAborted()helper method to check if a status represents an aborted compaction.BlockBasedTableOptions.format_version< 2, which hasn't been the default format for about 10 years. An upgrade path is still possible with full compaction using a RocksDB version >= 4.6.0 and < 11.0.0 and then using the newer version.DB*variants ofDB::Openand related functions. Some other minor public APIs were updated as a resultDB::MaxMemCompactionLevel()CompressedSecondaryCacheOptions::compress_format_versionskip_checking_sst_file_sizes_on_db_open. The option was deprecated in 10.5.0 and has been a no-op since then. File size validation is now always performed in parallel during DB open.SliceTransform::InRange()virtual method and thein_rangecallback parameter fromrocksdb_slicetransform_create()in the C API.InRange()was never called by RocksDB and existed only for backward compatibility.ReadOptions::managedandColumnFamilyOptions::snap_refresh_nanos. Corresponding C and Java APIs are also removed.SstFileWriter::Add()method (usePut()instead) and the deprecatedskip_filtersparameter fromSstFileWriterconstructors (useBlockBasedTableOptions::filter_policyset tonullptrto skip filter generation instead).Behavior Changes
CompactionOptionsUniversal::reduce_file_lockingfromfalsetotrueto improve write stall and reduce read regressionBug Fixes
Performance Improvements
separate_key_value_in_data_block. When set to true keys and values will be stored separately in the data block, which can result in higher cpu cache hit rate and better compression. Works best with data blocks with sufficient restart intervals and large values. Previous versions of RocksDB will reject files written using this option.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.