rocksdb/db
Islam AbdelRahman 5691a1d8a4 Fix compaction conflict with running compaction
Summary:
Issue scenario:
(1) We have 3 files in L1 and we issue a compaction that will compact them into 1 file in L2
(2) While compaction (1) is running, we flush a file into L0 and trigger another compaction that decide to move this file to L1 and then move it again to L2 (this file don't overlap with any other files)
(3) compaction (1) finishes and install the file it generated in L2, but this file overlap with the file we generated in (2) so we break the LSM consistency

Looks like this issue can be triggered by using non-exclusive manual compaction or AddFile()

Test Plan: unit tests

Reviewers: sdong

Reviewed By: sdong

Subscribers: hermanlee4, jkedgar, andrewkr, dhruba, yoshinorim

Differential Revision: https://reviews.facebook.net/D64947
2016-10-13 10:49:06 -07:00
..
auto_roll_logger_test.cc Cleanup auto-roll logger flush-while-rolling test 2016-07-07 11:35:40 -07:00
auto_roll_logger.cc Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
auto_roll_logger.h Redo SyncPoints for flush while rolling test 2016-02-22 21:32:19 -08:00
builder.cc Add TableBuilderOptions::level and relevant changes (#1335) 2016-09-17 22:30:43 -07:00
builder.h Add TableBuilderOptions::level and relevant changes (#1335) 2016-09-17 22:30:43 -07:00
c_test.c Fix C api memtable rep bugs. (#1328) 2016-09-12 15:31:42 -07:00
c.cc Fix C api memtable rep bugs. (#1328) 2016-09-12 15:31:42 -07:00
column_family_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
column_family.cc Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
column_family.h Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
compact_files_test.cc Fix CompactFilesTest.ObsoleteFiles timeout (#1353) 2016-09-26 10:39:07 -07:00
compacted_db_impl.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
compacted_db_impl.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
compaction_iterator_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
compaction_iterator.cc Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
compaction_iterator.h Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
compaction_job_stats_test.cc UniversalCompaction should ignore sorted runs being compacted (when compacting for file num) 2016-08-10 12:37:43 -07:00
compaction_job_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
compaction_job.cc not cut compaction output when compact to level 0 2016-09-23 17:16:38 -07:00
compaction_job.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
compaction_picker_test.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
compaction_picker.cc Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
compaction_picker.h Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
compaction.cc Refactor MutableCFOptions 2016-09-13 21:11:59 -07:00
compaction.h Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
comparator_db_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
convenience.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
corruption_test.cc Change several option defaults 2016-04-28 17:50:58 -07:00
cuckoo_table_db_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
db_block_cache_test.cc Not insert into block cache if cache is full and not holding handle 2016-08-23 13:53:49 -07:00
db_bloom_filter_test.cc Deprectate filter_deletes 2016-06-17 10:30:47 -07:00
db_compaction_filter_test.cc Change some RocksDB default options 2016-03-31 17:12:18 -07:00
db_compaction_test.cc Compaction picker to expand output level files for keys cross files' boundary too. 2016-07-26 17:56:36 -07:00
db_dynamic_level_test.cc Merge options source_compaction_factor, max_grandparent_overlap_bytes and expanded_compaction_factor into max_compaction_bytes 2016-09-01 14:33:24 -07:00
db_filesnapshot.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_flush_test.cc Fix unit test which breaks lite build 2016-07-21 14:32:12 -07:00
db_impl_add_file.cc Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
db_impl_debug.cc [rocksdb] make more options dynamic 2016-05-17 13:11:56 -07:00
db_impl_experimental.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_impl_readonly.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_impl_readonly.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
db_impl.cc Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
db_impl.h Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
db_info_dumper.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_info_dumper.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_inplace_update_test.cc Change some RocksDB default options 2016-03-31 17:12:18 -07:00
db_io_failure_test.cc Add NoSpace subcode to IOError (#1320) 2016-09-07 12:37:45 -07:00
db_iter_test.cc new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
db_iter.cc new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
db_iter.h new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
db_iterator_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
db_log_iter_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
db_options_test.cc Recompute compaction score on SetOptions (#1346) 2016-09-27 11:17:15 -07:00
db_properties_test.cc Store range tombstones in memtable 2016-09-30 09:06:43 -07:00
db_sst_test.cc Move AddFile() tests to external_sst_file_test.cc 2016-09-07 15:41:54 -07:00
db_table_properties_test.cc DBTablePropertiesTest.GetPropertiesOfTablesInRange: Fix Flaky 2016-07-19 15:46:20 -07:00
db_tailing_iter_test.cc Change Property name from "rocksdb.current_version_number" to "rocksdb.current-super-version-number" 2016-03-04 18:15:29 -08:00
db_test_util.cc Eliminate memcpy from ForwardIterator 2016-08-11 19:10:16 -07:00
db_test_util.h Consider more factors when determining preallocation size of WAL files 2016-09-19 12:04:35 -07:00
db_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
db_test2.cc Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
db_universal_compaction_test.cc UniversalCompaction should ignore sorted runs being compacted (when compacting for file num) 2016-08-10 12:37:43 -07:00
db_wal_test.cc Redo handling of recycled logs in full purge 2016-10-12 23:13:09 -07:00
dbformat_test.cc Improve BytewiseComparatorImpl::FindShortestSeparator 2016-04-25 23:02:14 -07:00
dbformat.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
dbformat.h Revert "Support SST files with Global sequence numbers" 2016-10-07 14:05:12 -07:00
deletefile_test.cc Fix a bug that accesses invalid address in iterator cleanup function 2016-07-05 11:57:14 -07:00
event_helpers.cc Added EventListener::OnTableFileCreationStarted() callback 2016-04-29 11:35:00 -07:00
event_helpers.h Added EventListener::OnTableFileCreationStarted() callback 2016-04-29 11:35:00 -07:00
experimental.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
external_sst_file_test.cc Fix compaction conflict with running compaction 2016-10-13 10:49:06 -07:00
fault_injection_test.cc Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
file_indexer_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
file_indexer.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
file_indexer.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
filename_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
filename.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
filename.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
flush_job_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
flush_job.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
flush_job.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
flush_scheduler.cc Fix clang analyzer errors 2016-07-08 17:50:51 -07:00
flush_scheduler.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
forward_iterator_bench.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
forward_iterator.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
forward_iterator.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
inlineskiplist_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
inlineskiplist.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
internal_stats.cc Fix mac build 2016-09-21 20:22:09 -07:00
internal_stats.h Add AddFile() InternalStats for Total files/L0 files/total keys ingested 2016-09-21 14:24:08 -07:00
job_context.h fixup commit 2016-10-13 08:48:40 -07:00
listener_test.cc add cfh deletion started listener 2016-09-22 11:56:18 -07:00
log_format.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_reader.cc Fix clang analyzer errors 2016-07-08 17:50:51 -07:00
log_reader.h db/log_reader: treat bad record length or checksum as EOF 2016-05-22 22:00:15 -07:00
log_test.cc db/log_reader: treat bad record length or checksum as EOF 2016-05-22 22:00:15 -07:00
log_writer.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_writer.h Need to make sure log file synced before flushing memtable of one column family 2016-07-21 16:29:06 -07:00
managed_iterator.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
managed_iterator.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
manual_compaction_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
memtable_allocator.cc Avoid updating memtable allocated bytes if write_buffer_size is not set 2016-07-13 19:33:57 -07:00
memtable_allocator.h Add options.write_buffer_manager: control total memtable size across DB instances 2016-07-05 18:11:25 -07:00
memtable_list_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
memtable_list.cc Fix flush not being commit while writing manifest 2016-07-21 10:10:41 -07:00
memtable_list.h [rocksdb] Memtable Log Referencing and Prepared Batch Recovery 2016-05-10 14:06:07 -07:00
memtable.cc Store range tombstones in memtable 2016-09-30 09:06:43 -07:00
memtable.h Store range tombstones in memtable 2016-09-30 09:06:43 -07:00
memtablerep_bench.cc Add options.write_buffer_manager: control total memtable size across DB instances 2016-07-05 18:11:25 -07:00
merge_context.h Fix MergeContext::copied_operands_ strings moving 2016-07-25 15:31:41 -07:00
merge_helper_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
merge_helper.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
merge_helper.h Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
merge_operator.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
merge_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options_file_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
perf_context_test.cc CompactedDB should not be used if there is outstanding WAL files 2016-04-26 14:22:07 -07:00
pinned_iterators_manager.h Minor PinnedIteratorsManager Refactoring 2016-08-11 11:54:17 -07:00
plain_table_db_test.cc Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
prefix_test.cc new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
repair_test.cc ColumnFamilyOptions API [CF + RepairDB part 3/3] 2016-06-24 16:29:43 -07:00
repair.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
skiplist_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
skiplist.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
snapshot_impl.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
snapshot_impl.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
table_cache.cc Fix a crash when compaction fails to open a file 2016-08-25 04:39:26 -07:00
table_cache.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
table_properties_collector_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
table_properties_collector.cc Added "number of merge operands" to statistics in ssts. 2016-05-19 14:24:48 -07:00
table_properties_collector.h Added "number of merge operands" to statistics in ssts. 2016-05-19 14:24:48 -07:00
transaction_log_impl.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
transaction_log_impl.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
version_builder_test.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_builder.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_builder.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
version_edit_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
version_edit.cc Miscellaneous performance improvements 2016-07-12 14:15:32 -07:00
version_edit.h Avoid FileMetaData copy 2016-07-13 15:36:22 -07:00
version_set_test.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_set.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_set.h Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
wal_manager_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
wal_manager.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
wal_manager.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
write_batch_base.cc WriteBatch support for range deletion 2016-08-16 08:16:04 -07:00
write_batch_internal.h Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
write_batch_test.cc Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
write_batch.cc Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
write_callback_test.cc write_callback_test: clean test directory before running tests 2016-04-18 10:18:41 -07:00
write_callback.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
write_controller_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
write_controller.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
write_controller.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
write_thread.cc WriteBatch support for range deletion 2016-08-16 08:16:04 -07:00
write_thread.h fix simple typos (#1183) 2016-06-25 08:29:40 +01:00
xfunc_test_points.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
xfunc_test_points.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00