rocksdb/db
Islam AbdelRahman ff4499e297 Update DB::AddFile() to have less restrictions
Summary:
Update DB::AddFile() restrictions to be
  - Key range in loaded table file don't overlap with existing keys or tombstones in DB.
  - No other writes happen during AddFile call.

The updated AddFile() will verify that the file key range don't overlap with any keys or tombstones in the DB, and then add the file to L0

Test Plan: unit tests

Reviewers: igor, rven, anthony, kradhakrishnan, sdong

Reviewed By: sdong

Subscribers: adsharma, ameyag, dhruba

Differential Revision: https://reviews.facebook.net/D49233
2015-10-30 16:38:10 -07:00
..
builder.cc Add more kill points 2015-10-16 14:35:12 -07:00
builder.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
c_test.c Deprecate CompactionFilterV2 2015-07-17 18:59:11 +02:00
c.cc options: add recycle_log_file_num option 2015-10-18 21:21:24 -04:00
column_family_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
column_family.cc Moving memtable related files from util to a new directory memtable 2015-10-16 14:10:33 -07:00
column_family.h Total SST files size DB Property 2015-08-20 11:47:19 -07:00
compact_files_test.cc Improved FileExists API 2015-07-20 17:20:40 -07:00
compacted_db_impl.cc Remove db_impl_readonly dependency on utilities 2015-07-14 11:32:54 -07:00
compacted_db_impl.h Remove db_impl_readonly dependency on utilities 2015-07-14 11:32:54 -07:00
compaction_iterator_test.cc Compaction filter on merge operands 2015-10-07 09:30:03 -07:00
compaction_iterator.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
compaction_iterator.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
compaction_job_stats_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
compaction_job_test.cc log_writer: pass log number and whether recycling is enabled to ctor 2015-10-18 21:24:32 -04:00
compaction_job.cc Fix iOS build 2015-10-19 13:40:44 -07:00
compaction_job.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
compaction_picker_test.cc Fix condition for bottommost level 2015-10-05 17:40:18 -07:00
compaction_picker.cc Add a mode to always pick the oldest file to compact for each level 2015-09-21 17:21:59 -07:00
compaction_picker.h Add counters for L0 stall while L0-L1 compaction is taking place 2015-09-14 11:03:37 -07:00
compaction.cc CompactionFilter::Context to contain column family ID 2015-10-08 11:27:38 -07:00
compaction.h Passing table properties to compaction callback 2015-10-09 18:10:55 -07:00
comparator_db_test.cc Moving memtable related files from util to a new directory memtable 2015-10-16 14:10:33 -07:00
convenience.cc move convenience.h out of utilities 2015-07-15 14:51:51 -07:00
corruption_test.cc Make corruption_test more robust 2015-10-05 14:46:28 -07:00
cuckoo_table_db_test.cc Block cuckoo table tests in ROCKSDB_LITE 2015-07-20 10:50:46 -07:00
db_bench.cc db_bench: --compaction_pri default should be rocksdb::Options().compaction_pri 2015-10-30 15:02:33 -07:00
db_compaction_filter_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_compaction_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_dynamic_level_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_filesnapshot.cc Add wal files to Checkpoint for multiple column families. 2015-06-19 16:08:31 -07:00
db_impl_debug.cc Remove db_impl_debug from release build 2015-10-12 17:35:43 -07:00
db_impl_experimental.cc Clean up InstallSuperVersion 2015-06-17 12:37:59 -07:00
db_impl_readonly.cc Remove db_impl_readonly dependency on utilities 2015-07-14 11:32:54 -07:00
db_impl_readonly.h Override DBImplReadOnly::SyncWAL() to return NotSupported. Previously, calling it caused program abort. 2015-09-25 21:25:30 -07:00
db_impl.cc Update DB::AddFile() to have less restrictions 2015-10-30 16:38:10 -07:00
db_impl.h Merge pull request #746 from ceph/wip-recycle 2015-10-26 15:01:28 -07:00
db_inplace_update_test.cc Clean up dependency: Move db_test_util.* to db directory 2015-10-12 13:05:42 -07:00
db_iter_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_iter.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
db_iter.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
db_log_iter_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_table_properties_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_tailing_iter_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_test_util.cc Merge pull request #746 from ceph/wip-recycle 2015-10-26 15:01:28 -07:00
db_test_util.h db_test_util: add recycle_log_files to set of tested options 2015-10-18 21:24:32 -04:00
db_test.cc Update DB::AddFile() to have less restrictions 2015-10-30 16:38:10 -07:00
db_universal_compaction_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
db_wal_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
dbformat_test.cc Avoid manipulating const char* arrays 2015-07-14 00:21:41 -07:00
dbformat.cc Support for SingleDelete() 2015-09-17 11:42:56 -07:00
dbformat.h key_ cannot become nullptr, so no check is needed for that 2015-09-18 20:15:20 +02:00
deletefile_test.cc Improved FileExists API 2015-07-20 17:20:40 -07:00
event_helpers.cc Passing table properties to compaction callback 2015-10-09 18:10:55 -07:00
event_helpers.h Add EventListener::OnTableFileDeletion() 2015-06-03 19:57:01 -07:00
experimental.cc Implement DB::PromoteL0 method 2015-04-23 12:10:36 -07:00
fault_injection_test.cc No need to #ifdef test only code on windows 2015-10-22 15:15:37 -07:00
file_indexer_test.cc Fix possible SIGSEGV in CompactRange (github issue #596) 2015-04-29 10:52:31 -07:00
file_indexer.cc Fix possible SIGSEGV in CompactRange (github issue #596) 2015-04-29 10:52:31 -07:00
file_indexer.h Fix public API dependency on internal codes and dependency on MAX_INT32 2015-07-11 10:32:11 -07:00
filename_test.cc rocksdb: switch to gtest 2015-03-17 14:08:00 -07:00
filename.cc Add more kill points 2015-10-16 14:35:12 -07:00
filename.h Support for LevelDB SST with .ldb suffix 2015-10-06 17:46:22 -07:00
flush_job_test.cc log_writer: pass log number and whether recycling is enabled to ctor 2015-10-18 21:24:32 -04:00
flush_job.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
flush_job.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
flush_scheduler.cc Don't return (or dereference) dangling pointer 2014-10-02 14:33:16 -07:00
flush_scheduler.h Fix data race #1 2015-01-26 11:48:07 -08:00
forward_iterator.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
forward_iterator.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
internal_stats.cc Allow GetProperty to report the number of currently running flushes / compactions. 2015-10-17 00:16:36 -07:00
internal_stats.h Allow GetProperty to report the number of currently running flushes / compactions. 2015-10-17 00:16:36 -07:00
job_context.h fixed leaking log::Writers 2015-07-07 12:10:10 -07:00
listener_test.cc Moving memtable related files from util to a new directory memtable 2015-10-16 14:10:33 -07:00
log_format.h log_{reader,write}: recyclable record format 2015-10-19 17:24:05 -04:00
log_reader.cc log_{reader,write}: recyclable record format 2015-10-19 17:24:05 -04:00
log_reader.h log_{reader,write}: recyclable record format 2015-10-19 17:24:05 -04:00
log_test.cc log_{reader,write}: recyclable record format 2015-10-19 17:24:05 -04:00
log_writer.cc log_{reader,write}: recyclable record format 2015-10-19 17:24:05 -04:00
log_writer.h log_{reader,write}: recyclable record format 2015-10-19 17:24:05 -04:00
managed_iterator.cc Windows Port from Microsoft 2015-07-01 16:13:56 -07:00
managed_iterator.h Fixed xfunc related compile errors in ROCKSDB_LITE 2015-04-09 21:05:18 -07:00
manual_compaction_test.cc Move manual_compaction_test.cc from util to db 2015-10-14 11:06:27 -07:00
memtable_allocator.cc Enforce write buffer memory limit across column families 2014-12-02 12:09:20 -08:00
memtable_allocator.h Enforce write buffer memory limit across column families 2014-12-02 12:09:20 -08:00
memtable_list_test.cc Removing duplicate code 2015-08-05 07:33:27 -07:00
memtable_list.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
memtable_list.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
memtable.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
memtable.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
memtablerep_bench.cc Fix benchmarks under ROCKSDB_LITE 2015-10-14 12:43:00 -07:00
merge_context.h API to fetch from both a WriteBatchWithIndex and the db 2015-05-11 14:51:51 -07:00
merge_helper_test.cc Compaction filter on merge operands 2015-10-07 09:30:03 -07:00
merge_helper.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
merge_helper.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
merge_operator.cc Call merge operators with empty values 2015-06-26 11:35:46 -07:00
merge_test.cc Make merge_test runnable in ROCKSDB_LITE 2015-07-20 11:17:52 -07:00
perf_context_test.cc Make perf_context.db_mutex_lock_nanos and db_condition_wait_nanos only measures DB Mutex 2015-10-13 10:41:48 -07:00
plain_table_db_test.cc PlainTableReader to support non-mmap mode 2015-09-23 11:41:07 -07:00
prefix_test.cc Skipped tests shouldn't be failures 2015-09-15 18:10:36 -07:00
repair.cc log_reader: pass log_number and optional info_log to ctor 2015-10-18 21:24:32 -04:00
skiplist_test.cc rocksdb: switch to gtest 2015-03-17 14:08:00 -07:00
skiplist.h reduce comparisons by skiplist 2015-08-11 11:25:22 -07:00
slice.cc Create an abstract interface for write batches 2015-03-17 19:23:08 -07:00
snapshot_impl.cc simple ManagedSnapshot wrapper 2015-08-06 17:59:05 -07:00
snapshot_impl.h simple ManagedSnapshot wrapper 2015-08-06 17:59:05 -07:00
table_cache.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
table_cache.h Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
table_properties_collector_test.cc Pass column family ID to table property collector 2015-10-09 14:36:51 -07:00
table_properties_collector.cc Support for SingleDelete() 2015-09-17 11:42:56 -07:00
table_properties_collector.h Pass column family ID to table property collector 2015-10-09 14:36:51 -07:00
transaction_log_impl.cc log_reader: pass log_number and optional info_log to ctor 2015-10-18 21:24:32 -04:00
transaction_log_impl.h Move rate_limiter, write buffering, most perf context instrumentation and most random kill out of Env 2015-07-17 16:58:18 -07:00
version_builder_test.cc Add a mode to always pick the oldest file to compact for each level 2015-09-21 17:21:59 -07:00
version_builder.cc Update DB::AddFile() to have less restrictions 2015-10-30 16:38:10 -07:00
version_builder.h Log more information for the add file with overlapping range failure 2015-10-19 17:31:13 -07:00
version_edit_test.cc New Manifest format to allow customized fields in NewFile. 2015-10-08 15:51:45 -07:00
version_edit.cc New Manifest format to allow customized fields in NewFile. 2015-10-08 15:51:45 -07:00
version_edit.h New Manifest format to allow customized fields in NewFile. 2015-10-08 15:51:45 -07:00
version_set_test.cc Report live data size estimate 2015-07-21 21:33:20 -07:00
version_set.cc Merge pull request #746 from ceph/wip-recycle 2015-10-26 15:01:28 -07:00
version_set.h Log more information for the add file with overlapping range failure 2015-10-19 17:31:13 -07:00
wal_manager_test.cc log_writer: pass log number and whether recycling is enabled to ctor 2015-10-18 21:24:32 -04:00
wal_manager.cc log_reader: pass log_number and optional info_log to ctor 2015-10-18 21:24:32 -04:00
wal_manager.h Fix -Wnon-virtual-dtor errors 2014-11-10 17:39:38 -05:00
write_batch_base.cc Support for SingleDelete() 2015-09-17 11:42:56 -07:00
write_batch_internal.h Support for SingleDelete() 2015-09-17 11:42:56 -07:00
write_batch_test.cc Seperate InternalIterator from Iterator 2015-10-13 15:32:13 -07:00
write_batch.cc Support for SingleDelete() 2015-09-17 11:42:56 -07:00
write_callback_test.cc Fix compile for write_callback_test in ROCKSDB_LITE 2015-07-20 10:54:15 -07:00
write_callback.h Optimistic Transactions 2015-05-29 14:36:35 -07:00
write_controller_test.cc Slow down writes by bytes written 2015-06-11 20:42:18 -07:00
write_controller.cc Slow down writes by bytes written 2015-06-11 20:42:18 -07:00
write_controller.h Slow down writes by bytes written 2015-06-11 20:42:18 -07:00
write_thread.cc reduce db mutex contention for write batch groups 2015-08-14 10:55:43 -07:00
write_thread.h reduce db mutex contention for write batch groups 2015-08-14 10:55:43 -07:00
writebuffer.h Enforce write buffer memory limit across column families 2014-12-02 12:09:20 -08:00