rocksdb/db
Peter Dillinger 4a9185340d A better contract for best_efforts_recovery (#11085)
Summary:
Capture more of the original intent at a high level, without getting bogged down in low-level details.

The old text made some weak promises about handling of LOCK files. There should be no specific concern for LOCK files, because we already rely on LockFile() to create the file if it's not present already. And the lock file is generally size 0, so don't have to worry about truncation. Added a unit test.

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

Test Plan: existing tests, and a new one.

Reviewed By: siying

Differential Revision: D42713233

Pulled By: pdillinger

fbshipit-source-id: 2fce7c974d35fac065037c9c4c7326a59c9fe340
2023-01-24 12:55:03 -08:00
..
blob Revert #10802 Consider range tombstone in compaction output file cutting (#11089) 2023-01-13 12:28:21 -08:00
compaction Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
db_impl Fix data race on ColumnFamilyData::flush_reason by letting FlushRequest/Job owns flush_reason instead of CFD (#11111) 2023-01-24 09:54:04 -08:00
wide Support Merge for wide-column entities in the compaction logic (#10946) 2022-11-11 16:32:32 -08:00
arena_wrapped_db_iter.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
arena_wrapped_db_iter.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
builder.cc Fix asan failure caused by range tombstone start key use-after-free (#11106) 2023-01-18 16:38:07 -08:00
builder.h Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
c.cc Add C API for ReadOptions::async_io (#11062) 2023-01-04 19:36:43 -08:00
c_test.c Add C API for ReadOptions::async_io (#11062) 2023-01-04 19:36:43 -08:00
column_family.cc Fix data race on ColumnFamilyData::flush_reason by letting FlushRequest/Job owns flush_reason instead of CFD (#11111) 2023-01-24 09:54:04 -08:00
column_family.h Fix data race on ColumnFamilyData::flush_reason by letting FlushRequest/Job owns flush_reason instead of CFD (#11111) 2023-01-24 09:54:04 -08:00
column_family_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
compact_files_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
comparator_db_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
convenience.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
corruption_test.cc Improve error messages for SST footer and size errors (#11009) 2022-12-09 10:03:47 -08:00
cuckoo_table_db_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_basic_test.cc A better contract for best_efforts_recovery (#11085) 2023-01-24 12:55:03 -08:00
db_block_cache_test.cc Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
db_bloom_filter_test.cc Add missing range conflict check between file ingestion and RefitLevel() (#10988) 2022-12-29 15:05:36 -08:00
db_compaction_filter_test.cc Skip swaths of range tombstone covered keys in merging iterator (2022 edition) (#10449) 2022-09-02 09:51:19 -07:00
db_compaction_test.cc Consider TTL compaction file cutting earlier to prevent small output file (#11075) 2023-01-17 16:42:41 -08:00
db_dynamic_level_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_encryption_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_filesnapshot.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_flush_test.cc Fix data race on ColumnFamilyData::flush_reason by letting FlushRequest/Job owns flush_reason instead of CFD (#11111) 2023-01-24 09:54:04 -08:00
db_info_dumper.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07: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 Enable a few unit tests to use custom Env objects (#9087) 2021-11-08 11:05:59 -08:00
db_iter.cc Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
db_iter.h Support Merge with wide-column entities in iterator (#10941) 2022-11-10 18:00:08 -08:00
db_iter_stress_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_iter_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_iterator_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_kv_checksum_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
db_log_iter_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_logical_block_size_cache_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_memtable_test.cc Add support for wide-column point lookups (#10540) 2022-08-19 11:51:12 -07:00
db_merge_operand_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_merge_operator_test.cc Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
db_options_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_properties_test.cc Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
db_range_del_test.cc Avoid counting extra range tombstone compensated size in AddRangeDels() (#11091) 2023-01-17 12:47:44 -08:00
db_rate_limiter_test.cc Add rate-limiting support to batched MultiGet() (#10159) 2022-06-17 16:40:47 -07:00
db_readonly_with_timestamp_test.cc Add timestamp support to CompactedDBImpl (#10030) 2022-05-24 12:14:10 -07:00
db_secondary_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_sst_test.cc Fix periodic_task unable to re-register the same task type (#10379) 2022-08-25 18:52:37 -07:00
db_statistics_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_table_properties_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_tailing_iter_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_test.cc Sort L0 files by newly introduced epoch_num (#10922) 2022-12-13 13:29:37 -08:00
db_test2.cc Sort L0 files by newly introduced epoch_num (#10922) 2022-12-13 13:29:37 -08:00
db_test_util.cc Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
db_test_util.h Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
db_universal_compaction_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
db_wal_test.cc Revise LockWAL/UnlockWAL implementation (#11020) 2022-12-13 21:45:00 -08:00
db_with_timestamp_basic_test.cc Fix asan failure caused by range tombstone start key use-after-free (#11106) 2023-01-18 16:38:07 -08:00
db_with_timestamp_compaction_test.cc Fix an assertion failure in TimestampTablePropertiesCollector for empty output (#11015) 2022-12-05 13:46:27 -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 Prevent a case of WriteBufferManager flush thrashing (#6364) 2022-08-17 15:53:40 -07:00
db_write_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
dbformat.cc Remove copying of range tombstones keys in iterator (#10878) 2022-11-28 19:27:22 -08:00
dbformat.h Remove copying of range tombstones keys in iterator (#10878) 2022-11-28 19:27:22 -08:00
dbformat_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
deletefile_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
error_handler.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
error_handler.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
error_handler_fs_test.cc Deflake DBErrorHandlingFSTest.*WALWriteError (#10642) 2022-09-06 12:59:02 -07:00
event_helpers.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
event_helpers.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
experimental.cc Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
external_sst_file_basic_test.cc Fix some unit test failure in ExternalSSTFileBasicTest (#11070) 2023-01-05 12:10:02 -08:00
external_sst_file_ingestion_job.cc Add missing range conflict check between file ingestion and RefitLevel() (#10988) 2022-12-29 15:05:36 -08:00
external_sst_file_ingestion_job.h Add missing range conflict check between file ingestion and RefitLevel() (#10988) 2022-12-29 15:05:36 -08:00
external_sst_file_test.cc Add missing range conflict check between file ingestion and RefitLevel() (#10988) 2022-12-29 15:05:36 -08:00
fault_injection_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
file_indexer.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -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 Fix data race on ColumnFamilyData::flush_reason by letting FlushRequest/Job owns flush_reason instead of CFD (#11111) 2023-01-24 09:54:04 -08:00
flush_job.h Fix data race on ColumnFamilyData::flush_reason by letting FlushRequest/Job owns flush_reason instead of CFD (#11111) 2023-01-24 09:54:04 -08:00
flush_job_test.cc Fix data race on ColumnFamilyData::flush_reason by letting FlushRequest/Job owns flush_reason instead of CFD (#11111) 2023-01-24 09:54:04 -08:00
flush_scheduler.cc
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 Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
forward_iterator.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
forward_iterator_bench.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
history_trimming_iterator.h Revert #10802 Consider range tombstone in compaction output file cutting (#11089) 2023-01-13 12:28:21 -08:00
import_column_family_job.cc Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
import_column_family_job.h Add some missing headers (#10519) 2022-08-11 12:45:50 -07:00
import_column_family_test.cc Use VersionBuilder for CF import ordering/validation (#11028) 2022-12-10 15:07:42 -08:00
internal_stats.cc Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
internal_stats.h Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
job_context.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
kv_checksum.h Add memtable per key-value checksum (#10281) 2022-08-12 13:51:32 -07:00
listener_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
log_format.h Add record to set WAL compression type if enabled (#9556) 2022-02-17 16:19:31 -08:00
log_reader.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
log_reader.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
log_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
log_writer.cc Add manual_wal_flush, FlushWAL() to stress/crash test (#10698) 2022-09-30 15:48:33 -07:00
log_writer.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
logs_with_prep_tracker.cc
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 Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
malloc_stats.h
manual_compaction_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
memtable.cc Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
memtable.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
memtable_list.cc Fix flush picking non-consecutive memtables (#10921) 2022-11-04 15:55:54 -07:00
memtable_list.h Fix memtable-only iterator regression (#10705) 2022-09-21 09:49:31 -07:00
memtable_list_test.cc Fix flush picking non-consecutive memtables (#10921) 2022-11-04 15:55:54 -07:00
merge_context.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
merge_helper.cc Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
merge_helper.h Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08: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 Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
merge_test.cc Make the Env class Customizable (#9293) 2022-01-04 16:45:49 -08:00
obsolete_files_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
options_file_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
output_validator.cc Cleanup includes in dbformat.h (#8930) 2021-09-29 04:04:40 -07:00
output_validator.h Cleanup includes in dbformat.h (#8930) 2021-09-29 04:04:40 -07:00
perf_context_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
periodic_task_scheduler.cc Fix periodic_task unable to re-register the same task type (#10379) 2022-08-25 18:52:37 -07:00
periodic_task_scheduler.h Fix periodic_task unable to re-register the same task type (#10379) 2022-08-25 18:52:37 -07:00
periodic_task_scheduler_test.cc Add an unittest for Periodic compaction conflict with ongoing compaction (#10908) 2022-12-12 10:37:55 -08:00
pinned_iterators_manager.h Avoid allocations/copies for large GetMergeOperands() results (#10458) 2022-08-04 00:42:13 -07:00
plain_table_db_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -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 Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
range_del_aggregator.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
range_del_aggregator.h User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -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 Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
range_tombstone_fragmenter.cc Improve FragmentTombstones() speed by lazily initializing seq_set_ (#10848) 2022-10-25 11:33:04 -07:00
range_tombstone_fragmenter.h Improve FragmentTombstones() speed by lazily initializing seq_set_ (#10848) 2022-10-25 11:33:04 -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 Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
repair_test.cc Sort L0 files by newly introduced epoch_num (#10922) 2022-12-13 13:29:37 -08:00
seqno_time_test.cc Add an unittest for Periodic compaction conflict with ongoing compaction (#10908) 2022-12-12 10:37:55 -08:00
seqno_to_time_mapping.cc Add option preserve_internal_time_seconds to preserve the time info (#10747) 2022-10-07 18:49:40 -07:00
seqno_to_time_mapping.h Add option preserve_internal_time_seconds to preserve the time info (#10747) 2022-10-07 18:49:40 -07:00
snapshot_checker.h Use STATIC_AVOID_DESTRUCTION for static objects with non-trivial destructors (#9958) 2022-05-17 09:39:22 -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 Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
table_cache.h Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
table_cache_sync_and_async.h Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
table_properties_collector.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
table_properties_collector.h Fix an assertion failure in TimestampTablePropertiesCollector for empty output (#11015) 2022-12-05 13:46:27 -08:00
table_properties_collector_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
transaction_log_impl.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
transaction_log_impl.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
trim_history_scheduler.cc
trim_history_scheduler.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
version_builder.cc Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
version_builder.h Sort L0 files by newly introduced epoch_num (#10922) 2022-12-13 13:29:37 -08:00
version_builder_test.cc Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
version_edit.cc Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
version_edit.h Avoid counting extra range tombstone compensated size in AddRangeDels() (#11091) 2023-01-17 12:47:44 -08:00
version_edit_handler.cc Sort L0 files by newly introduced epoch_num (#10922) 2022-12-13 13:29:37 -08:00
version_edit_handler.h Sort L0 files by newly introduced epoch_num (#10922) 2022-12-13 13:29:37 -08:00
version_edit_test.cc Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
version_set.cc Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
version_set.h Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
version_set_sync_and_async.h Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
version_set_test.cc Include estimated bytes deleted by range tombstones in compensated file size (#10734) 2022-12-29 13:28:24 -08:00
version_util.h Allow manifest fix-up without requiring prior state (#10796) 2022-10-10 17:59:17 -07: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 Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
wal_manager.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
wal_manager_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
write_batch.cc Add API to limit blast radius of merge operator failure (#11092) 2023-01-20 14:40:30 -08:00
write_batch_base.cc
write_batch_internal.h Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
write_batch_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07:00
write_callback.h
write_callback_test.cc Ran clang-format on db/ directory (#10910) 2022-11-02 14:34:24 -07: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_thread.cc Revise LockWAL/UnlockWAL implementation (#11020) 2022-12-13 21:45:00 -08:00
write_thread.h Fix race in ExitAsBatchGroupLeader with pipelined writes (#9944) 2022-08-02 14:52:10 -07:00