rocksdb/db
Jay Zhuang f726d29a82 Allow penultimate level output for the last level only compaction (#10822)
Summary:
Allow the last level only compaction able to output result to penultimate level if the penultimate level is empty. Which will also block the other compaction output to the penultimate level.
(it includes the PR https://github.com/facebook/rocksdb/issues/10829)

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

Reviewed By: siying

Differential Revision: D40389180

Pulled By: jay-zhuang

fbshipit-source-id: 4e5dcdce307795b5e07b5dd1fa29dd75bb093bad
2022-10-22 08:57:38 -07:00
..
blob Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
compaction Allow penultimate level output for the last level only compaction (#10822) 2022-10-22 08:57:38 -07:00
db_impl Refactor block cache tracing APIs (#10811) 2022-10-21 12:15:35 -07:00
wide Support providing the default column separately when serializing columns (#10839) 2022-10-20 16:00:58 -07:00
arena_wrapped_db_iter.cc Cleanup SuperVersion in Iterator::Refresh() (#10770) 2022-10-04 22:23:24 -07:00
arena_wrapped_db_iter.h Fix memtable-only iterator regression (#10705) 2022-09-21 09:49:31 -07:00
builder.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
builder.h Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
c.cc Add C API to set avoid_unnecessary_blocking_io option (#10693) 2022-09-22 18:41:06 -07:00
c_test.c Support prepopulating/warming the blob cache (#10298) 2022-07-17 07:13:59 -07:00
column_family.cc Enable a multi-level db to smoothly migrate to FIFO via DB::Open (#10348) 2022-10-18 14:38:13 -07:00
column_family.h Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
column_family_test.cc Validate option memtable_protection_bytes_per_key (#10621) 2022-08-31 17:47:07 -07:00
compact_files_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
comparator_db_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
convenience.cc Specify largest_seqno in VerifyChecksum (#9919) 2022-05-02 10:22:08 -07:00
corruption_test.cc Migrate to docker for CI run (#10496) 2022-08-10 17:34:38 -07:00
cuckoo_table_db_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
db_basic_test.cc Bypass a MultiGet test when async_io is used (#10669) 2022-09-14 09:59:54 -07:00
db_block_cache_test.cc Add DB property for fast block cache stats collection (#10832) 2022-10-20 15:04:29 -07:00
db_bloom_filter_test.cc Enable a multi-level db to smoothly migrate to FIFO via DB::Open (#10348) 2022-10-18 14:38:13 -07: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 Ignore kBottommostFiles compaction logic when allow_ingest_behind (#10767) 2022-10-05 09:27:14 -07:00
db_dynamic_level_test.cc Remove deprecated API AdvancedColumnFamilyOptions::soft_rate_limit/hard_rate_limit (#9452) 2022-01-27 13:01:09 -08:00
db_encryption_test.cc Fix a minor issue with initializing the test path (#8555) 2021-07-23 08:38:45 -07:00
db_filesnapshot.cc Reduce risk of backup or checkpoint missing a WAL file (#10083) 2022-06-01 11:02:27 -07:00
db_flush_test.cc Manual flush with wait=false should not stall when writes stopped (#10001) 2022-10-04 16:43:01 -07:00
db_info_dumper.cc Printing IO Error in DumpDBFileSummary (#9940) 2022-05-04 10:19:53 -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 Make UserComparatorWrapper not Customizable (#10837) 2022-10-21 12:27:50 -07:00
db_iter.h Add wide-column support to iterators (#10670) 2022-09-13 21:01:36 -07:00
db_iter_stress_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
db_iter_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
db_iterator_test.cc Cleanup SuperVersion in Iterator::Refresh() (#10770) 2022-10-04 22:23: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 Remove own ToString() (#9955) 2022-05-06 13:03:58 -07:00
db_logical_block_size_cache_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -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 Avoid allocations/copies for large GetMergeOperands() results (#10458) 2022-08-04 00:42:13 -07:00
db_merge_operator_test.cc Fix a minor issue with initializing the test path (#8555) 2021-07-23 08:38:45 -07:00
db_options_test.cc Fix typo in comments and code (#10233) 2022-06-22 15:45:21 -07:00
db_properties_test.cc Refactor to avoid confusing "raw block" (#10408) 2022-09-22 11:25:32 -07:00
db_range_del_test.cc Use sstableKeyCompare() for compaction output boundary check (#10763) 2022-10-06 15:54:58 -07: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 Fail DB::Open() if logger cannot be created (#9984) 2022-05-27 07:23:31 -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 Bytes read stat for VerifyChecksum() and VerifyFileChecksums() APIs (#8741) 2021-09-07 13:28:29 -07:00
db_table_properties_test.cc Always verify SST unique IDs on SST file open (#10532) 2022-09-07 22:52:42 -07:00
db_tailing_iter_test.cc Provide support for async_io with tailing iterators (#10781) 2022-10-10 15:48:48 -07:00
db_test.cc Enable a multi-level db to smoothly migrate to FIFO via DB::Open (#10348) 2022-10-18 14:38:13 -07:00
db_test2.cc Allow penultimate level output for the last level only compaction (#10822) 2022-10-22 08:57:38 -07:00
db_test_util.cc Use kXXH3 as default checksum (CPU efficiency) (#10778) 2022-10-21 18:09:12 -07:00
db_test_util.h Use kXXH3 as default checksum (CPU efficiency) (#10778) 2022-10-21 18:09:12 -07:00
db_universal_compaction_test.cc Remove own ToString() (#9955) 2022-05-06 13:03:58 -07:00
db_wal_test.cc Deflake DBWALTest.RaceInstallFlushResultsWithWalObsoletion (#10456) 2022-08-04 12:14:28 -07:00
db_with_timestamp_basic_test.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
db_with_timestamp_compaction_test.cc Fix overlapping check by excluding timestamp (#10615) 2022-09-08 13:03:07 -07: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 Add manual_wal_flush, FlushWAL() to stress/crash test (#10698) 2022-09-30 15:48:33 -07:00
dbformat.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
dbformat.h User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
dbformat_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
deletefile_test.cc Remove own ToString() (#9955) 2022-05-06 13:03:58 -07:00
error_handler.cc Do not hold mutex when write keys if not necessary (#7516) 2022-07-21 13:35:36 -07:00
error_handler.h Do not hold mutex when write keys if not necessary (#7516) 2022-07-21 13:35:36 -07:00
error_handler_fs_test.cc Deflake DBErrorHandlingFSTest.*WALWriteError (#10642) 2022-09-06 12:59:02 -07:00
event_helpers.cc LOG more info on oldest snapshot and sequence numbers (#10454) 2022-08-12 13:08:50 -07:00
event_helpers.h Add a listener callback for end of auto error recovery (#9244) 2021-12-08 14:30:57 -08:00
experimental.cc Allow manifest fix-up without requiring prior state (#10796) 2022-10-10 17:59:17 -07:00
external_sst_file_basic_test.cc Refactor to avoid confusing "raw block" (#10408) 2022-09-22 11:25:32 -07:00
external_sst_file_ingestion_job.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
external_sst_file_ingestion_job.h Track SST unique id in MANIFEST and verify (#9990) 2022-05-19 11:04:21 -07:00
external_sst_file_test.cc Remove own ToString() (#9955) 2022-05-06 13:03:58 -07:00
fault_injection_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
file_indexer.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
file_indexer.h Use std::numeric_limits<> (#9954) 2022-05-05 13:08:21 -07:00
file_indexer_test.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
filename_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
flush_job.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
flush_job.h Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
flush_job_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07: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 Provide support for async_io with tailing iterators (#10781) 2022-10-10 15:48:48 -07:00
forward_iterator.h Provide support for async_io with tailing iterators (#10781) 2022-10-10 15:48:48 -07:00
forward_iterator_bench.cc Remove using namespace (#9369) 2022-01-12 09:31:12 -08:00
history_trimming_iterator.h Add OpenAndTrimHistory API to support trimming data with specified timestamp (#9410) 2022-03-11 16:13:23 -08:00
import_column_family_job.cc Add some missing headers (#10519) 2022-08-11 12:45:50 -07:00
import_column_family_job.h Add some missing headers (#10519) 2022-08-11 12:45:50 -07:00
import_column_family_test.cc Add some missing headers (#10519) 2022-08-11 12:45:50 -07:00
internal_stats.cc Add DB property for fast block cache stats collection (#10832) 2022-10-20 15:04:29 -07:00
internal_stats.h Add DB property for fast block cache stats collection (#10832) 2022-10-20 15:04:29 -07:00
job_context.h CompactionIterator sees consistent view of which keys are committed (#9830) 2022-04-14 11:11:04 -07:00
kv_checksum.h Add memtable per key-value checksum (#10281) 2022-08-12 13:51:32 -07:00
listener_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -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 Add checksum handshake for WAL fragment decompression (#10339) 2022-07-25 16:27:26 -07:00
log_reader.h Add checksum handshake for WAL fragment decompression (#10339) 2022-07-25 16:27:26 -07:00
log_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -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 Add manual_wal_flush, FlushWAL() to stress/crash test (#10698) 2022-09-30 15:48:33 -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 Include C++ standard library headers instead of C compatibility headers (#8068) 2021-03-19 12:09:47 -07:00
lookup_key.h Cleanup includes in dbformat.h (#8930) 2021-09-29 04:04:40 -07:00
malloc_stats.cc Replace most typedef with using= (#8751) 2021-09-07 11:31:59 -07:00
malloc_stats.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
manual_compaction_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
memtable.cc Separate the handling of value types in SaveValue (#10840) 2022-10-21 10:05:46 -07:00
memtable.h User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
memtable_list.cc Fix memtable-only iterator regression (#10705) 2022-09-21 09:49:31 -07:00
memtable_list.h Fix memtable-only iterator regression (#10705) 2022-09-21 09:49:31 -07:00
memtable_list_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
merge_context.h Add Merge Operator support to WriteBatchWithIndex (#8135) 2021-05-10 12:50:25 -07:00
merge_helper.cc Add API for writing wide-column entities (#10242) 2022-06-25 15:30:47 -07:00
merge_helper.h Support readahead during compaction for blob files (#9187) 2021-11-19 17:53:47 -08:00
merge_helper_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
merge_operator.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
merge_test.cc Make the Env class Customizable (#9293) 2022-01-04 16:45:49 -08:00
obsolete_files_test.cc Remove own ToString() (#9955) 2022-05-06 13:03:58 -07:00
options_file_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -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 Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -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 Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07: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 Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -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 Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
range_del_aggregator.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -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 Cleanup multiple implementations of VectorIterator (#8901) 2021-10-06 07:48:31 -07:00
range_del_aggregator_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
range_tombstone_fragmenter.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
range_tombstone_fragmenter.h User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
range_tombstone_fragmenter_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
read_callback.h Fix and detect headers with missing dependencies (#8893) 2021-09-10 10:00:26 -07:00
repair.cc Always verify SST unique IDs on SST file open (#10532) 2022-09-07 22:52:42 -07:00
repair_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
seqno_time_test.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.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 Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
snapshot_impl.h Snapshots with user-specified timestamps (#9879) 2022-06-10 16:07:03 -07:00
table_cache.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
table_cache.h Always verify SST unique IDs on SST file open (#10532) 2022-09-07 22:52:42 -07:00
table_cache_sync_and_async.h Always verify SST unique IDs on SST file open (#10532) 2022-09-07 22:52:42 -07:00
table_properties_collector.cc Refactor to avoid confusing "raw block" (#10408) 2022-09-22 11:25:32 -07:00
table_properties_collector.h Refactor to avoid confusing "raw block" (#10408) 2022-09-22 11:25:32 -07:00
table_properties_collector_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
transaction_log_impl.cc Support read rate-limiting in SequentialFileReader (#9973) 2022-05-24 10:28:57 -07:00
transaction_log_impl.h Add checks to GetUpdatesSince (#9459) 2022-04-14 17:12:16 -07: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 Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
version_builder.cc Always verify SST unique IDs on SST file open (#10532) 2022-09-07 22:52:42 -07:00
version_builder.h Account memory of FileMetaData in global memory limit (#9924) 2022-06-14 13:06:40 -07:00
version_builder_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
version_edit.cc Remove unused fields from FileMetaData (temporarily) (#10443) 2022-08-01 17:56:13 -07:00
version_edit.h Always verify SST unique IDs on SST file open (#10532) 2022-09-07 22:52:42 -07:00
version_edit_handler.cc Add blob source to retrieve blobs in RocksDB (#10198) 2022-06-20 20:58:11 -07:00
version_edit_handler.h Fixed manifest_dump issues when printing keys and values containing null characters (#8378) 2021-06-10 12:55:20 -07:00
version_edit_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
version_set.cc Make UserComparatorWrapper not Customizable (#10837) 2022-10-21 12:27:50 -07:00
version_set.h Allow manifest fix-up without requiring prior state (#10796) 2022-10-10 17:59:17 -07:00
version_set_sync_and_async.h Fix range deletion handling in async MultiGet (#10534) 2022-08-17 13:51:39 -07:00
version_set_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07: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 Fix bug for WalManager with compressed WAL (#10130) 2022-06-08 14:16:43 -07:00
wal_manager.h Fix bug for WalManager with compressed WAL (#10130) 2022-06-08 14:16:43 -07:00
wal_manager_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
write_batch.cc User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -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 User-defined timestamp support for DeleteRange() (#10661) 2022-09-30 16:13:03 -07:00
write_batch_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
write_callback.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
write_callback_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
write_controller.cc Revamp WriteController (#8064) 2021-03-18 09:47:31 -07:00
write_controller.h Set Write rate limiter priority dynamically and pass it to FS (#9988) 2022-05-18 00:41:41 -07:00
write_controller_test.cc Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
write_thread.cc Fix race in ExitAsBatchGroupLeader with pipelined writes (#9944) 2022-08-02 14:52:10 -07:00
write_thread.h Fix race in ExitAsBatchGroupLeader with pipelined writes (#9944) 2022-08-02 14:52:10 -07:00