rocksdb/db
Hui Xiao a1d8318563 Fix resumable compaction to prevent resumption at truncated range deletion boundaries (#14184)
Summary:
**Context/Summary:**

Truncated range deletion in input files can be output by CompactionIterator with type kMaxValid instead of kTypeRangeDeletion, to satisfy ordering requirement between the truncated range deletion start key and a file's point keys. There was a plan to skip such key in https://github.com/facebook/rocksdb/pull/14122 but blockers remain to fulfill the plan.

Resumable compaction is not able to handle resumption from range deletion well at this point and should consider kMaxValid type same as kTypeRangeDeletion for resumption. Previously, it didn't and mistakenly allow resumption from a delete range. That led to an assertion failure, complaining about lacking information to update file boundaries in the presence of range deletion needed during cutting an output file, after the compaction resumes from that delete range and happens to cut the output file shortly after without any point keys in between.

```
frame https://github.com/facebook/rocksdb/issues/9: 0x00007f4f4743bc93 libc.so.6`__GI___assert_fail(assertion="meta.smallest.size() > 0", file="db/compaction/compaction_outputs.cc", line=530, function="rocksdb::Status rocksdb::CompactionOutputs::AddRangeDels(rocksdb::CompactionRangeDelAggregator&, const rocksdb::Slice*, const rocksdb::Slice*, rocksdb::CompactionIterationStats&, bool, const rocksdb::InternalKeyComparator&, rocksdb::SequenceNumber, std::pair<long unsigned int, long unsigned int>, const rocksdb::Slice&, const string&)") at assert.c:101:3
frame https://github.com/facebook/rocksdb/issues/10: 0x00007f4f4808c68c librocksdb.so.10.9`rocksdb::CompactionOutputs::AddRangeDels(this=0x00007f4f0c27e1a0, range_del_agg=0x00007f4f0c21ecc0, comp_start_user_key=0x0000000000000000, comp_end_user_key=0x0000000000000000, range_del_out_stats=0x00007f4f0dffa140, bottommost_level=false, icmp=0x00007f4ef4c93040, earliest_snapshot=13108729, keep_seqno_range=<unavailable>, next_table_min_key=0x00007f4ef4c8f540, full_history_ts_low="") at compaction_outputs.cc:530:7
frame https://github.com/facebook/rocksdb/issues/11: 0x00007f4f480480dd librocksdb.so.10.9`rocksdb::CompactionJob::FinishCompactionOutputFile(this=0x00007f4f0dffb890, input_status=<unavailable>, prev_table_last_internal_key=0x00007f4f0dffa650, next_table_min_key=0x00007f4ef4c8f540, comp_start_user_key=0x0000000000000000, comp_end_user_key=0x0000000000000000, c_iter=0x00007f4ef4c8f400, sub_compact=0x00007f4f0c27e000, outputs=0x00007f4f0c27e1a0) at compaction_job.cc:1917:31
```

This PR simply prevents  MaxValid from being a resumption point like regular range deletion - see commit 842d66eb18ea67e965d6acb1fce12c18eeb778d2

Besides that, the PR also improves the testing, variable naming, logging in resumable compaction codes that were needed to debug this assertion failure - see commit https://github.com/facebook/rocksdb/pull/14184/commits/aecd4e7f971f6dd4df672d9e5f1409fe4747c561. These improvements are covered by existing tests.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/14184

Test Plan:
- The stress initially surfaced the error. Using the exact same LSM shapes and files that were used in stress test but in a unit test, I'm able to get a deterministic repro and confirmed the fix resolves the error.  This is the repro test 1075936e69
```
./compaction_service_test --gtest_filter=ResumableCompactionServiceTest.CompactSpecificFilesFromExistingDBWithCancelAndResume
# Before fix
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ResumableCompactionServiceTest
[ RUN      ] ResumableCompactionServiceTest.CompactSpecificFilesFromExistingDBWithCancelAndResume
compaction_service_test: db/compaction/compaction_outputs.cc:530: rocksdb::Status rocksdb::CompactionOutputs::AddRangeDels(rocksdb::CompactionRangeDelAggregator&, const rocksdb::Slice*, const rocksdb::Slice*, rocksdb::CompactionIterationStats&, bool, const rocksdb::InternalKeyComparator&, rocksdb::SequenceNumber, std::pair<long unsigned int, long unsigned int>, const rocksdb::Slice&, const string&): Assertion `meta.smallest.size() > 0' failed.
Received signal 6 (Aborted)
Invoking GDB for stack trace...
[New LWP 2621610]
[New LWP 2621611]
[New LWP 2621612]
[New LWP 2621613]
[New LWP 2621614]
[New LWP 2621630]
[New LWP 2621631]

# After fix
Note: Google Test filter = ResumableCompactionServiceTest.CompactSpecificFilesFromExistingDBWithCancelAndResume
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ResumableCompactionServiceTest
[ RUN      ] ResumableCompactionServiceTest.CompactSpecificFilesFromExistingDBWithCancelAndResume
[       OK ] ResumableCompactionServiceTest.CompactSpecificFilesFromExistingDBWithCancelAndResume (4722 ms)
[----------] 1 test from ResumableCompactionServiceTest (4722 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (4722 ms total)
[  PASSED  ] 1 test.

```
- Follow-up: I tried a couple time to coerce the truncated range delete from scratch in the unit test but failed doing so. Considering kMaxValid may not be outputted by compaction iterator anymore after https://github.com/facebook/rocksdb/pull/14122/files gets landed again (and obsolete the bug) ADN the simple nature of this fix 842d66eb18ea67e965d6acb1fce12c18eeb778d2 AND the worst case of such fix going wrong is just less resumption, I decided to leave writing a unit test to coerce truncated ranged deletion from scratch a follow-up. Maybe I will draw inspiration from https://github.com/facebook/rocksdb/pull/14122/files.

Reviewed By: jaykorean

Differential Revision: D88912663

Pulled By: hx235

fbshipit-source-id: 80a01135684c8fea659650faaa00c2dc452c482a
2025-12-11 16:50:42 -08:00
..
blob propagate request_id from app -> Rocks -> FS (#13616) 2025-05-16 21:25:50 -07:00
compaction Fix resumable compaction to prevent resumption at truncated range deletion boundaries (#14184) 2025-12-11 16:50:42 -08:00
db_impl Fix resumable compaction to prevent resumption at truncated range deletion boundaries (#14184) 2025-12-11 16:50:42 -08:00
wide Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
arena_wrapped_db_iter.cc Clarify that memtable_op_scan_flush_trigger does not support tailing iterator (#13586) 2025-05-05 17:42:57 -07:00
arena_wrapped_db_iter.h Introduction of MultiScanOptions (#13837) 2025-08-08 10:33:36 -07:00
attribute_group_iterator_impl.cc MultiCfIterator - AttributeGroupIter Impl & CoalescingIter Optimization (#12534) 2024-04-16 08:45:38 -07:00
attribute_group_iterator_impl.h Some small improvements around allow_unprepared_value and multi-CF iterators (#13113) 2024-11-04 18:06:07 -08:00
builder.cc Some follow-up to parallel compression revamp (#13959) 2025-09-17 08:43:19 -07:00
builder.h Verify flush output file record count + minor clean up (#13556) 2025-04-23 14:52:56 -07:00
c.cc Remote Compaction C API (#14136) 2025-12-08 10:08:19 -08:00
c_test.c Remote Compaction C API (#14136) 2025-12-08 10:08:19 -08:00
coalescing_iterator.cc MultiCfIterator - AttributeGroupIter Impl & CoalescingIter Optimization (#12534) 2024-04-16 08:45:38 -07:00
coalescing_iterator.h Remove EXPERIMENTAL tag for MultiCfIterators (#13142) 2024-11-18 11:23:17 -08:00
column_family.cc Introduce column family option cf_allow_ingest_behind (#13810) 2025-08-05 23:19:09 -07:00
column_family.h Introduce column family option cf_allow_ingest_behind (#13810) 2025-08-05 23:19:09 -07:00
column_family_test.cc Refactor wal related naming and more (#13490) 2025-04-11 10:08:29 -07:00
compact_files_test.cc Add trivial move support in CompactFiles API (#14112) 2025-11-10 15:20:50 -08:00
comparator_db_test.cc Run internal cpp modernizer on RocksDB repo (#12398) 2024-03-04 10:08:32 -08:00
convenience.cc Preliminary support for custom compression algorithms (#13659) 2025-06-16 14:19:03 -07:00
convenience_impl.h Group rocksdb.sst.read.micros stat by different user read IOActivity + misc (#11444) 2023-08-08 17:26:50 -07:00
corruption_test.cc Support GetFileSize API in FSRandomAccessFile (#13676) 2025-07-09 10:40:28 -07:00
cuckoo_table_db_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
db_basic_test.cc Fix use-after-free in BlockBasedTable after best-efforts recovery retry (#14155) 2025-12-02 19:26:42 -08:00
db_block_cache_test.cc Publish/support format_version=7, related enhancements (#13713) 2025-06-20 17:39:47 -07:00
db_bloom_filter_test.cc Merge BuiltinFilterBitsBuilder into FilterBitsBuilder for accurate filter size estimation (#14111) 2025-11-10 14:47:36 -08:00
db_clip_test.cc Support Clip DB to KeyRange (#11379) 2023-05-18 13:25:01 -07:00
db_compaction_filter_test.cc Replace ScopedArenaIterator with ScopedArenaPtr<InternalIterator> (#12470) 2024-03-22 13:40:42 -07:00
db_compaction_test.cc Introduce tail estimation to prevent oversized compaction files (#14051) 2025-11-05 20:00:00 -08:00
db_dynamic_level_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
db_encryption_test.cc Support GetFileSize API in FSRandomAccessFile (#13676) 2025-07-09 10:40:28 -07:00
db_etc3_test.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
db_filesnapshot.cc Fix a missing CV signal in FindObsoleteFiles() (#14069) 2025-10-24 13:11:26 -07:00
db_flush_test.cc Support Super Block Alignment (#13909) 2025-10-01 18:20:35 -07:00
db_follower_test.cc Typo fix (#14024) 2025-10-03 14:28:37 -07:00
db_info_dumper.cc Don't log an error when an auxiliary dir is missing (#12326) 2024-02-05 10:26:41 -08:00
db_info_dumper.h Add a DB Session ID (#6959) 2020-06-15 10:47:02 -07:00
db_inplace_update_test.cc Fix in-place updates for value types other than kTypeValue (#10254) 2022-06-27 16:37:09 -07:00
db_io_failure_test.cc Fix tests broken by gtest upgrade (#13661) 2025-06-04 10:44:17 -07:00
db_iter.cc Move the MultiScan seek key check to upper layer (#14040) 2025-10-13 12:48:04 -07:00
db_iter.h Move the MultiScan seek key check to upper layer (#14040) 2025-10-13 12:48:04 -07:00
db_iter_stress_test.cc Clarify that memtable_op_scan_flush_trigger does not support tailing iterator (#13586) 2025-05-05 17:42:57 -07:00
db_iter_test.cc Clarify that memtable_op_scan_flush_trigger does not support tailing iterator (#13586) 2025-05-05 17:42:57 -07:00
db_iterator_test.cc Introducing Prepare all iterators for LevelIterator (#14100) 2025-11-18 15:57:03 -08:00
db_kv_checksum_test.cc Refactor wal related naming and more (#13490) 2025-04-11 10:08:29 -07:00
db_log_iter_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
db_logical_block_size_cache_test.cc Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00
db_memtable_test.cc Add option to validate key during seek in SkipList Memtable (#13902) 2025-09-18 16:15:50 -07:00
db_merge_operand_test.cc Fix GetMergeOperands() in ReadOnly and SecondaryDB (#13396) 2025-02-18 11:01:19 -08:00
db_merge_operator_test.cc Deprecate RangePtr, favor new RangeOpt and OptSlice (#13481) 2025-03-24 17:08:17 -07:00
db_options_test.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
db_properties_test.cc Deflake test DBPropertiesTest.AggregatedTableProperties (#13568) 2025-04-22 15:31:46 -07:00
db_range_del_test.cc Revert #14122 "Fix a bug where compaction ..." (#14170) 2025-12-04 12:28:01 -08:00
db_rate_limiter_test.cc New FlushWAL() API to take extra fields such as rate limiter priority (#14037) 2025-10-09 14:31:47 -07:00
db_readonly_with_timestamp_test.cc Enforce status checking after Valid() returns false for IteratorWrapper (#11975) 2023-10-18 09:38:38 -07:00
db_secondary_test.cc Support GetFileSize API in FSRandomAccessFile (#13676) 2025-07-09 10:40:28 -07:00
db_sst_test.cc Improve handling of GetFileSize failure (#13842) 2025-08-06 15:20:07 -07:00
db_statistics_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
db_table_properties_test.cc Record smallest seqno in table properties for faster file ingestion (#13942) 2025-09-17 20:20:33 -07:00
db_tailing_iter_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
db_test.cc Api to get SST file with key ranges for a particular level and key range (startKey, EndKey)rocksdb [Internal version] (#14009) 2025-11-10 17:13:34 -08:00
db_test2.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
db_test_util.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
db_test_util.h Add kCool Temperature (#14000) 2025-09-25 11:27:00 -07:00
db_universal_compaction_test.cc Introduce column family option cf_allow_ingest_behind (#13810) 2025-08-05 23:19:09 -07:00
db_wal_test.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
db_with_timestamp_basic_test.cc Del redundant-static-def in internal_repo_rocksdb/repo/db/db_with_timestamp_basic_test.cc +1 (#13794) 2025-07-22 11:49:12 -07:00
db_with_timestamp_compaction_test.cc Prefer static_cast in place of most reinterpret_cast (#12308) 2024-02-07 10:44:11 -08:00
db_with_timestamp_test_util.cc Add timestamp support to DBImplReadOnly (#10004) 2022-05-19 18:39:41 -07:00
db_with_timestamp_test_util.h Add timestamp support to DBImplReadOnly (#10004) 2022-05-19 18:39:41 -07:00
db_write_buffer_manager_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
db_write_test.cc Experimental API IngestWriteBatchWithIndex() (#13550) 2025-04-17 12:06:40 -07:00
dbformat.cc Reduce use of snprintf and fixed-size buffers (#13154) 2024-11-22 17:53:35 -08:00
dbformat.h Revert #14122 "Fix a bug where compaction ..." (#14170) 2025-12-04 12:28:01 -08:00
dbformat_test.cc Improve version macros (#14004) 2025-09-25 17:35:23 -07:00
deletefile_test.cc Remove deprecated DB::DeleteFile API references (#13322) 2025-01-24 22:28:41 -08:00
error_handler.cc Fix WriteBatch atomicity and WAL recovery for some failures (#13489) 2025-04-01 18:16:07 -07:00
error_handler.h Deflake unit test DBErrorHandlingFSTest.AtomicFlushNoSpaceError (#13234) 2024-12-19 16:57:51 -08:00
error_handler_fs_test.cc Remove the return value of SetBGError() (#12792) 2024-06-26 18:17:05 -07:00
event_helpers.cc Record smallest seqno in table properties for faster file ingestion (#13942) 2025-09-17 20:20:33 -07:00
event_helpers.h Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00
experimental.cc Handle drop column family version edit in file checksum retriever (#13832) 2025-08-05 10:48:49 -07:00
external_sst_file_basic_test.cc Revert "Create a new API FileSystem::SyncFile for file sync (#13762)" (#13987) 2025-09-22 15:30:24 -07:00
external_sst_file_ingestion_job.cc Revert "Create a new API FileSystem::SyncFile for file sync (#13762)" (#13987) 2025-09-22 15:30:24 -07:00
external_sst_file_ingestion_job.h Allow ingestion of any DB generated SST file (#13878) 2025-08-22 16:05:56 -07:00
external_sst_file_test.cc Fix flaky unit test IngestDBGeneratedFileTest2.NonZeroSeqno (#13979) 2025-09-20 00:08:12 -07:00
fault_injection_test.cc FaultInjectionTestFS follow-up and clean-up (#12861) 2024-07-15 10:28:34 -07:00
file_indexer.cc Simplify conditional judgment (#11580) 2023-07-03 09:41:48 -07:00
file_indexer.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
file_indexer_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
filename_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
flush_job.cc Some follow-up to parallel compression revamp (#13959) 2025-09-17 08:43:19 -07:00
flush_job.h Refactor snapshot context into JobContext and fix deadlock on db mutex in WP/WUP (#13632) 2025-05-22 09:42:15 -07:00
flush_job_test.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
flush_scheduler.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
flush_scheduler.h Include C++ standard library headers instead of C compatibility headers (#8068) 2021-03-19 12:09:47 -07:00
forward_iterator.cc Clean up some CFOptions code hygiene, fix SetOptions() bug (#13294) 2025-01-15 13:11:40 -08:00
forward_iterator.h Clarify that memtable_op_scan_flush_trigger does not support tailing iterator (#13586) 2025-05-05 17:42:57 -07:00
forward_iterator_bench.cc Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00
history_trimming_iterator.h Refactor AddRangeDels() + consider range tombstone during compaction file cutting (#11113) 2023-02-22 12:28:18 -08:00
import_column_family_job.cc Preliminary support for custom compression algorithms (#13659) 2025-06-16 14:19:03 -07:00
import_column_family_job.h Support to create a CF by importing multiple non-overlapping CFs (#11378) 2023-06-15 12:25:04 -07:00
import_column_family_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
internal_stats.cc Log pre-compression size written per level in compaction stats (#13596) 2025-05-12 11:53:16 -07:00
internal_stats.h Log pre-compression size written per level in compaction stats (#13596) 2025-05-12 11:53:16 -07:00
job_context.h Refactor snapshot context into JobContext and fix deadlock on db mutex in WP/WUP (#13632) 2025-05-22 09:42:15 -07:00
kv_checksum.h Block per key-value checksum (#11287) 2023-04-25 12:08:23 -07:00
listener_test.cc Fix and check for potential ODR violations (#14096) 2025-11-04 19:47:42 -08:00
log_format.h Detect WAL hole (#13226) 2024-12-26 13:20:35 -08:00
log_reader.cc Improve two error messages on WAL recovery (#13876) 2025-08-13 12:02:12 -07:00
log_reader.h Typo fix (#14024) 2025-10-03 14:28:37 -07:00
log_test.cc Fix corrupted wal number when predecessor wal corrupts + minor cleanup (#13359) 2025-02-13 21:49:51 -08:00
log_writer.cc Detect WAL hole (#13226) 2024-12-26 13:20:35 -08:00
log_writer.h Typo fix (#14024) 2025-10-03 14:28:37 -07:00
logs_with_prep_tracker.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
logs_with_prep_tracker.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
lookup_key.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
malloc_stats.cc Prefer static_cast in place of most reinterpret_cast (#12308) 2024-02-07 10:44:11 -08:00
malloc_stats.h Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
manifest_ops.cc Offline file checksum manifest retriever (#13178) 2024-12-06 13:29:52 -08:00
manifest_ops.h Offline file checksum manifest retriever (#13178) 2024-12-06 13:29:52 -08:00
manual_compaction_test.cc internal_repo_rocksdb (4372117296613874540) (#12117) 2023-12-04 11:17:32 -08:00
memtable.cc Add option to validate key during seek in SkipList Memtable (#13902) 2025-09-18 16:15:50 -07:00
memtable.h Add option to validate key during seek in SkipList Memtable (#13902) 2025-09-18 16:15:50 -07:00
memtable_list.cc Add a new GetNewestUserDefinedTimestamp API (#13547) 2025-04-17 13:19:52 -07:00
memtable_list.h Add a new GetNewestUserDefinedTimestamp API (#13547) 2025-04-17 13:19:52 -07:00
memtable_list_test.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
merge_context.h Reverse the order of updates to the same key in WriteBatchWithIndex (#13387) 2025-02-10 17:15:47 -08:00
merge_helper.cc Preserve tombstones for allow_ingest_behind (#13807) 2025-07-30 12:00:54 -07:00
merge_helper.h Integrate compaction resumption with DB::OpenAndCompact() (#13984) 2025-10-15 13:43:53 -07:00
merge_helper_test.cc Basic Support for Merge with user-defined timestamp (#10819) 2022-10-31 22:28:58 -07:00
merge_operator.cc Use C++20 in public API, fix CI (#13915) 2025-09-08 13:11:28 -07:00
merge_test.cc Improve atomicity of SetOptions, skip manifest write (#13384) 2025-02-10 16:46:13 -08:00
multi_cf_iterator_impl.h Some small improvements around allow_unprepared_value and multi-CF iterators (#13113) 2024-11-04 18:06:07 -08:00
multi_cf_iterator_test.cc Support allow_unprepared_value for multi-CF iterators (#13079) 2024-10-20 20:53:08 -07:00
multi_scan.cc Move the MultiScan seek key check to upper layer (#14040) 2025-10-13 12:48:04 -07:00
obsolete_files_test.cc Fix a missing CV signal in FindObsoleteFiles() (#14069) 2025-10-24 13:11:26 -07:00
options_file_test.cc internal_repo_rocksdb (4372117296613874540) (#12117) 2023-12-04 11:17:32 -08:00
output_validator.cc Removed check_flush_compaction_key_order (#12311) 2024-01-31 16:30:26 -08:00
output_validator.h Removed check_flush_compaction_key_order (#12311) 2024-01-31 16:30:26 -08:00
perf_context_test.cc Add write_memtable_time to perf level kEnableWait (#12394) 2024-02-29 15:08:26 -08:00
periodic_task_scheduler.cc Add a new periodic task to trigger compactions (#13736) 2025-07-01 11:07:51 -07:00
periodic_task_scheduler.h Add a new periodic task to trigger compactions (#13736) 2025-07-01 11:07:51 -07:00
periodic_task_scheduler_test.cc Add a new periodic task to trigger compactions (#13736) 2025-07-01 11:07:51 -07:00
pinned_iterators_manager.h Prefer static_cast in place of most reinterpret_cast (#12308) 2024-02-07 10:44:11 -08:00
plain_table_db_test.cc Fix WriteBatch atomicity and WAL recovery for some failures (#13489) 2025-04-01 18:16:07 -07:00
post_memtable_callback.h Snapshots with user-specified timestamps (#9879) 2022-06-10 16:07:03 -07:00
pre_release_callback.h Fix and detect headers with missing dependencies (#8893) 2021-09-10 10:00:26 -07:00
prefix_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
range_del_aggregator.cc Revert #14122 "Fix a bug where compaction ..." (#14170) 2025-12-04 12:28:01 -08:00
range_del_aggregator.h Replace ScopedArenaIterator with ScopedArenaPtr<InternalIterator> (#12470) 2024-03-22 13:40:42 -07:00
range_del_aggregator_bench.cc Improve FragmentTombstones() speed by lazily initializing seq_set_ (#10848) 2022-10-25 11:33:04 -07:00
range_del_aggregator_test.cc Revert #14122 "Fix a bug where compaction ..." (#14170) 2025-12-04 12:28:01 -08:00
range_tombstone_fragmenter.cc Add support for range deletion when user timestamps are not persisted (#12254) 2024-01-29 11:37:34 -08:00
range_tombstone_fragmenter.h Remove stale entries from L0 files when UDT is not persisted (#13035) 2024-10-14 12:28:35 -07:00
range_tombstone_fragmenter_test.cc snapshots of FragmentedRangeTombstoneList must in ascending order (#11046) 2022-12-19 15:06:22 -08:00
read_callback.h Fix and detect headers with missing dependencies (#8893) 2021-09-10 10:00:26 -07:00
repair.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
repair_test.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
seqno_time_test.cc Deprecate RangePtr, favor new RangeOpt and OptSlice (#13481) 2025-03-24 17:08:17 -07:00
seqno_to_time_mapping.cc Improve consistency of SeqnoToTime tracking in SuperVersion (#13316) 2025-03-04 17:44:01 -08:00
seqno_to_time_mapping.h Improve consistency of SeqnoToTime tracking in SuperVersion (#13316) 2025-03-04 17:44:01 -08:00
snapshot_checker.h Optimize compaction for standalone range deletion files (#13078) 2024-10-25 09:32:14 -07:00
snapshot_impl.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
snapshot_impl.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
table_cache.cc Preliminary support for custom compression algorithms (#13659) 2025-06-16 14:19:03 -07:00
table_cache.h Fix and test for leaks of open SST files (#13117) 2024-11-08 10:54:43 -08:00
table_cache_sync_and_async.h Refactor table_factory into MutableCFOptions (#13077) 2024-10-17 14:13:20 -07:00
table_properties_collector.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
table_properties_collector.h Add CompactForTieringCollector to support automatically trigger compaction for tiering use case (#12760) 2024-06-18 10:51:29 -07:00
table_properties_collector_test.cc Record newest_key_time as a table property (#13083) 2024-11-01 10:08:35 -07:00
transaction_log_impl.cc Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
transaction_log_impl.h Fix corrupted wal number when predecessor wal corrupts + minor cleanup (#13359) 2025-02-13 21:49:51 -08:00
trim_history_scheduler.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
trim_history_scheduler.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
version_builder.cc Clean up some CFOptions code hygiene, fix SetOptions() bug (#13294) 2025-01-15 13:11:40 -08:00
version_builder.h Refactor table_factory into MutableCFOptions (#13077) 2024-10-17 14:13:20 -07:00
version_builder_test.cc Fix blob files not reclaimed after deleting all SSTs (#12235) 2024-01-16 11:15:23 -08:00
version_edit.cc Revert #14122 "Fix a bug where compaction ..." (#14170) 2025-12-04 12:28:01 -08:00
version_edit.h Fix resumable compaction to prevent resumption at truncated range deletion boundaries (#14184) 2025-12-11 16:50:42 -08:00
version_edit_handler.cc Handle drop column family version edit in file checksum retriever (#13832) 2025-08-05 10:48:49 -07:00
version_edit_handler.h Handle drop column family version edit in file checksum retriever (#13832) 2025-08-05 10:48:49 -07:00
version_edit_test.cc Resuming and persisting subcompaction progress in CompactionJob (#13983) 2025-10-01 14:21:55 -07:00
version_set.cc Fix use-after-free in BlockBasedTable after best-efforts recovery retry (#14155) 2025-12-02 19:26:42 -08:00
version_set.h Api to get SST file with key ranges for a particular level and key range (startKey, EndKey)rocksdb [Internal version] (#14009) 2025-11-10 17:13:34 -08:00
version_set_sync_and_async.h Refactor table_factory into MutableCFOptions (#13077) 2024-10-17 14:13:20 -07:00
version_set_test.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
version_util.h Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
wal_edit.cc Do not hold mutex when write keys if not necessary (#7516) 2022-07-21 13:35:36 -07:00
wal_edit.h Do not hold mutex when write keys if not necessary (#7516) 2022-07-21 13:35:36 -07:00
wal_edit_test.cc Do not hold mutex when write keys if not necessary (#7516) 2022-07-21 13:35:36 -07:00
wal_manager.cc Fix unsigned underflow in WAL TTL logic when system clock goes backwards (#14016) 2025-10-24 17:10:48 -07:00
wal_manager.h Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
wal_manager_test.cc Auto-tune manifest file size (#14076) 2025-11-07 09:04:52 -08:00
write_batch.cc Support concurrent write for vector memtable (#13675) 2025-06-18 17:32:59 -07:00
write_batch_base.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
write_batch_internal.h Support concurrent write for vector memtable (#13675) 2025-06-18 17:32:59 -07:00
write_batch_test.cc Reverse the order of updates to the same key in WriteBatchWithIndex (#13387) 2025-02-10 17:15:47 -08:00
write_callback.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
write_callback_test.cc Deprecate raw DB pointer in public APIs (#13311) 2025-01-17 13:33:25 -08:00
write_controller.cc Revamp WriteController (#8064) 2021-03-18 09:47:31 -07:00
write_controller.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
write_controller_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
write_stall_stats.cc Fix initialization-order-fiasco in write_stall_stats.cc (#11355) 2023-04-05 14:42:31 -07:00
write_stall_stats.h Remove unnecessary, confusing 'extern' (#12300) 2024-01-29 10:38:08 -08:00
write_thread.cc Introduce a transaction option to skip memtable write during commit (#13144) 2024-12-05 15:00:17 -08:00
write_thread.h Typo fix (#14024) 2025-10-03 14:28:37 -07:00