* Fix data corruption casued by output of intra-L0 compaction on ingested file not being placed in correct order in L0.
* Fix a data race between Version::GetColumnFamilyMetaData() and Compaction::MarkFilesBeingCompacted() for access to being_compacted (#6056). The current fix acquires the db mutex during Version::GetColumnFamilyMetaData(), which may cause regression.
### Public API Change
### Public API Change
* RocksDB release 4.1 or older will not be able to open DB generated by the new release. 4.2 was released on Feb 23, 2016.
* TTL Compactions in Level compaction style now initiate successive cascading compactions on a key range so that it reaches the bottom level quickly on TTL expiry. `creation_time` table property for compaction output files is now set to the minimum of the creation times of all compaction inputs.
* TTL Compactions in Level compaction style now initiate successive cascading compactions on a key range so that it reaches the bottom level quickly on TTL expiry. `creation_time` table property for compaction output files is now set to the minimum of the creation times of all compaction inputs.
* Changed the default value of periodic_compaction_seconds to `UINT64_MAX` which allows RocksDB to auto-tune periodic compaction scheduling. When using the default value, periodic compactions are now auto-enabled if a compaction filter is used. A value of `0` will turn off the feature completely.
* Changed the default value of periodic_compaction_seconds to `UINT64_MAX` which allows RocksDB to auto-tune periodic compaction scheduling. When using the default value, periodic compactions are now auto-enabled if a compaction filter is used. A value of `0` will turn off the feature completely.
* With FIFO compaction style, options.periodic_compaction_seconds will have the same meaning as options.ttl. Whichever stricter will be used. With the default options.periodic_compaction_seconds value with options.ttl's default of 0, RocksDB will give a default of 30 days.
* With FIFO compaction style, options.periodic_compaction_seconds will have the same meaning as options.ttl. Whichever stricter will be used. With the default options.periodic_compaction_seconds value with options.ttl's default of 0, RocksDB will give a default of 30 days.
@ -24,7 +21,9 @@
* For 64-bit hashing, RocksDB is standardizing on a slightly modified preview version of XXH3. This function is now used for many non-persisted hashes, along with fastrange64() in place of the modulus operator, and some benchmarks show a slight improvement.
* For 64-bit hashing, RocksDB is standardizing on a slightly modified preview version of XXH3. This function is now used for many non-persisted hashes, along with fastrange64() in place of the modulus operator, and some benchmarks show a slight improvement.
### Bug Fixes
### Bug Fixes
* Fix a assertion failure in MultiGe4t() when BlockBasedTableOptions::no_block_cache is true and there is no compressed block cache
* Fix data corruption casued by output of intra-L0 compaction on ingested file not being placed in correct order in L0.
* Fix a data race between Version::GetColumnFamilyMetaData() and Compaction::MarkFilesBeingCompacted() for access to being_compacted (#6056). The current fix acquires the db mutex during Version::GetColumnFamilyMetaData(), which may cause regression.
* Fix a assertion failure in MultiGet() when BlockBasedTableOptions::no_block_cache is true and there is no compressed block cache
* If a call to BackupEngine::PurgeOldBackups or BackupEngine::DeleteBackup suffered a crash, power failure, or I/O error, files could be left over from old backups that could only be purged with a call to GarbageCollect. Any call to PurgeOldBackups, DeleteBackup, or GarbageCollect should now suffice to purge such files.
* If a call to BackupEngine::PurgeOldBackups or BackupEngine::DeleteBackup suffered a crash, power failure, or I/O error, files could be left over from old backups that could only be purged with a call to GarbageCollect. Any call to PurgeOldBackups, DeleteBackup, or GarbageCollect should now suffice to purge such files.
* Fix a buffer overrun problem in BlockBasedTable::MultiGet() when compression is enabled and no compressed block cache is configured.
* Fix a buffer overrun problem in BlockBasedTable::MultiGet() when compression is enabled and no compressed block cache is configured.
* Fix a bug in DBIter that is_blob_ state isn't updated when iterating backward using seek.
* Fix a bug in DBIter that is_blob_ state isn't updated when iterating backward using seek.
@ -54,7 +54,7 @@ with open('${sorted_input_data}', 'w') as f:
EOF
EOF
declare -a backward_compatible_checkout_objs=("2.2.fb.branch""2.3.fb.branch""2.4.fb.branch""2.5.fb.branch""2.6.fb.branch""2.7.fb.branch""2.8.1.fb""3.0.fb.branch""3.1.fb""3.2.fb""3.3.fb""3.4.fb""3.5.fb""3.6.fb""3.7.fb""3.8.fb""3.9.fb")
declare -a backward_compatible_checkout_objs=("2.2.fb.branch""2.3.fb.branch""2.4.fb.branch""2.5.fb.branch""2.6.fb.branch""2.7.fb.branch""2.8.1.fb""3.0.fb.branch""3.1.fb""3.2.fb""3.3.fb""3.4.fb""3.5.fb""3.6.fb""3.7.fb""3.8.fb""3.9.fb")
declare -a forward_compatible_checkout_objs=("3.10.fb""3.11.fb""3.12.fb""3.13.fb""4.0.fb""4.1.fb""4.2.fb""4.3.fb""4.4.fb""4.5.fb""4.6.fb""4.7.fb""4.8.fb""4.9.fb""4.10.fb""4.11.fb""4.12.fb""4.13.fb""5.0.fb""5.1.fb""5.2.fb""5.3.fb""5.4.fb""5.5.fb""5.6.fb""5.7.fb""5.8.fb""5.9.fb""5.10.fb")
declare -a forward_compatible_checkout_objs=("4.2.fb""4.3.fb""4.4.fb""4.5.fb""4.6.fb""4.7.fb""4.8.fb""4.9.fb""4.10.fb""4.11.fb""4.12.fb""4.13.fb""5.0.fb""5.1.fb""5.2.fb""5.3.fb""5.4.fb""5.5.fb""5.6.fb""5.7.fb""5.8.fb""5.9.fb""5.10.fb")
declare -a forward_compatible_with_options_checkout_objs=("5.11.fb""5.12.fb""5.13.fb""5.14.fb""5.15.fb""5.16.fb""5.17.fb""5.18.fb""6.0.fb""6.1.fb""6.2.fb""6.3.fb""6.4.fb""6.5.fb")
declare -a forward_compatible_with_options_checkout_objs=("5.11.fb""5.12.fb""5.13.fb""5.14.fb""5.15.fb""5.16.fb""5.17.fb""5.18.fb""6.0.fb""6.1.fb""6.2.fb""6.3.fb""6.4.fb""6.5.fb")
declare -a checkout_objs=(${backward_compatible_checkout_objs[@]}${forward_compatible_checkout_objs[@]}${forward_compatible_with_options_checkout_objs[@]})
declare -a checkout_objs=(${backward_compatible_checkout_objs[@]}${forward_compatible_checkout_objs[@]}${forward_compatible_with_options_checkout_objs[@]})
declare -a extern_sst_ingestion_compatible_checkout_objs=("5.14.fb""5.15.fb""5.16.fb""5.17.fb""5.18.fb""6.0.fb""6.1.fb""6.2.fb""6.3.fb""6.4.fb""6.5.fb")
declare -a extern_sst_ingestion_compatible_checkout_objs=("5.14.fb""5.15.fb""5.16.fb""5.17.fb""5.18.fb""6.0.fb""6.1.fb""6.2.fb""6.3.fb""6.4.fb""6.5.fb")