rocksdb/db
JiYou 82e8e9e26b VersionBuilder: optmize SaveTo() to linear time. (#4366)
Summary:
Because `base_files` and `added_files` both are sorted, using a merge
operation to these two sorted arrays is more effective. The complexity
is reduced to linear time.

    - optmize the merge complexity.
    - move the `NDEBUG` of sorted `added_files` out of merge process.

Signed-off-by: JiYou <jiyou09@gmail.com>
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4366

Differential Revision: D9833592

Pulled By: ajkr

fbshipit-source-id: dd32b67ebdca4c20e5e9546ab8082cecefe99fd0
2018-09-14 19:43:04 -07:00
..
builder.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
builder.h Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
c.cc Memory usage stats in C API (#4340) 2018-09-13 14:27:31 -07:00
c_test.c Memory usage stats in C API (#4340) 2018-09-13 14:27:31 -07:00
column_family.cc Skip deleted WALs during recovery 2018-05-03 15:43:09 -07:00
column_family.h Add max_subcompactions as a compaction option 2018-04-27 11:57:39 -07:00
column_family_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
compact_files_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
compacted_db_impl.cc Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
compacted_db_impl.h Comment out unused variables 2018-03-05 13:13:41 -08:00
compaction.cc Add bottommost_compression_opts to for bottommost_compression (#3985) 2018-06-27 17:42:38 -07:00
compaction.h Add bottommost_compression_opts to for bottommost_compression (#3985) 2018-06-27 17:42:38 -07:00
compaction_iteration_stats.h add counter for deletion dropping optimization 2017-08-19 14:10:08 -07:00
compaction_iterator.cc Drop unnecessary deletion markers during compaction (issue - 3842) (#4289) 2018-08-24 15:17:54 -07:00
compaction_iterator.h option for timing measurement of non-blocking ops during compaction (#4029) 2018-06-21 21:28:05 -07:00
compaction_iterator_test.cc Drop unnecessary deletion markers during compaction (issue - 3842) (#4289) 2018-08-24 15:17:54 -07:00
compaction_job.cc Store the return value of Fsync for check 2018-09-14 13:29:56 -07:00
compaction_job.h Allow DB resume after background errors (#3997) 2018-06-28 12:34:40 -07:00
compaction_job_stats_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
compaction_job_test.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
compaction_picker.cc Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
compaction_picker.h Add bottommost_compression_opts to for bottommost_compression (#3985) 2018-06-27 17:42:38 -07:00
compaction_picker_test.cc Remove random writes from SST file ingestion (#4172) 2018-07-27 16:12:23 -07:00
compaction_picker_universal.cc Remove random writes from SST file ingestion (#4172) 2018-07-27 16:12:23 -07:00
compaction_picker_universal.h Delete triggered compaction for universal style 2018-05-29 15:44:34 -07:00
comparator_db_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
convenience.cc Pin mmap files in ReadOnlyDB (#4053) 2018-06-27 17:13:34 -07:00
corruption_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
cuckoo_table_db_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
db_basic_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
db_blob_index_test.cc fix lite build 2017-10-17 08:57:09 -07:00
db_block_cache_test.cc LRUCache midpoint insertion 2018-05-24 15:57:33 -07:00
db_bloom_filter_test.cc PrefixMayMatch: remove unnecessary check for prefix_extractor_ (#4067) 2018-06-27 20:42:43 -07:00
db_compaction_filter_test.cc Remove tests from ROCKSDB_VALGRIND_RUN 2018-05-30 16:15:16 -07:00
db_compaction_test.cc Skip concurrency control during recovery of pessimistic txn (#4346) 2018-09-10 16:57:53 -07:00
db_dynamic_level_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
db_encryption_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_filesnapshot.cc fix behavior does not match name for "IsFileDeletionsEnabled" 2018-03-21 22:13:34 -07:00
db_flush_test.cc Avoiding write stall caused by manual flushes (#4297) 2018-08-29 12:12:55 -07:00
db_impl.cc Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
db_impl.h Avoiding write stall caused by manual flushes (#4297) 2018-08-29 12:12:55 -07:00
db_impl_compaction_flush.cc Avoiding write stall caused by manual flushes (#4297) 2018-08-29 12:12:55 -07:00
db_impl_debug.cc Avoiding write stall caused by manual flushes (#4297) 2018-08-29 12:12:55 -07:00
db_impl_experimental.cc Update JobContext. (#3949) 2018-08-03 17:42:34 -07:00
db_impl_files.cc SetOptions Backup Race Condition (#4108) 2018-07-11 14:57:46 -07:00
db_impl_open.cc Delete code for WAL reader to start at nonzero offset (#4362) 2018-09-13 17:13:03 -07:00
db_impl_readonly.cc add missing counters in readonly mode (#4260) 2018-08-22 22:43:13 -07:00
db_impl_readonly.h allowing CompactFiles to return new file names 2018-03-15 11:58:12 -07:00
db_impl_write.cc Refactor flush request queueing and processing (#3952) 2018-08-24 13:27:35 -07:00
db_info_dumper.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_info_dumper.h Change RocksDB License 2017-07-15 16:11:23 -07:00
db_inplace_update_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_io_failure_test.cc Fix LITE unit tests 2017-07-26 21:11:47 -07:00
db_iter.cc Add tracing function of Seek() and SeekForPrev() to trace_replay (#4228) 2018-08-10 17:57:40 -07:00
db_iter.h Add tracing function of Seek() and SeekForPrev() to trace_replay (#4228) 2018-08-10 17:57:40 -07:00
db_iter_stress_test.cc Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
db_iter_test.cc Fix regression bug of Prev() with upper bound (#3989) 2018-06-12 16:57:36 -07:00
db_iterator_test.cc Add tracing function of Seek() and SeekForPrev() to trace_replay (#4228) 2018-08-10 17:57:40 -07:00
db_log_iter_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
db_memtable_test.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
db_merge_operator_test.cc WriteUnPrepared Txn: Disable seek to snapshot optimization (#3955) 2018-06-27 12:23:07 -07:00
db_options_test.cc PersistRocksDBOptions() to use WritableFileWriter 2018-05-21 16:42:22 -07:00
db_properties_test.cc Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
db_range_del_test.cc Remove random writes from SST file ingestion (#4172) 2018-07-27 16:12:23 -07:00
db_sst_test.cc Simplify DBWithMaxSpaceAllowedRandomized (#4235) 2018-08-08 07:27:46 -07:00
db_statistics_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_table_properties_test.cc fix deletion-triggered compaction in table builder 2017-09-28 18:17:30 -07:00
db_tailing_iter_test.cc Remove managed iterator 2018-07-17 14:43:18 -07:00
db_test.cc Avoiding write stall caused by manual flushes (#4297) 2018-08-29 12:12:55 -07:00
db_test2.cc Add a unit test to verify iterators release data blocks after using them (#4170) 2018-08-13 17:43:14 -07:00
db_test_util.cc Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
db_test_util.h Initialize uninitialized std::atomic variables 2018-09-12 08:58:05 -07:00
db_universal_compaction_test.cc Reformatting some recent changes (#4161) 2018-07-20 14:43:38 -07:00
db_wal_test.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
db_write_test.cc Suppress tsan lock-order-inversion on FlushWAL 2018-05-14 21:13:35 -07:00
dbformat.cc types: add kEntryBlobIndex for TablePropertiesCollector (#4233) 2018-08-06 18:27:44 -07:00
dbformat.h Refactor IndexBlockIter (#4141) 2018-07-16 17:13:10 -07:00
dbformat_test.cc Relax VersionStorageInfo::GetOverlappingInputs check (#4050) 2018-07-13 17:42:38 -07:00
deletefile_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
error_handler.cc Allow DB resume after background errors (#3997) 2018-06-28 12:34:40 -07:00
error_handler.h Allow DB resume after background errors (#3997) 2018-06-28 12:34:40 -07:00
error_handler_test.cc Allow DB resume after background errors (#3997) 2018-06-28 12:34:40 -07:00
event_helpers.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
event_helpers.h Change RocksDB License 2017-07-15 16:11:23 -07:00
experimental.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
external_sst_file_basic_test.cc Support range deletion tombstones in IngestExternalFile SSTs (#3778) 2018-07-13 22:43:09 -07:00
external_sst_file_ingestion_job.cc Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
external_sst_file_ingestion_job.h Remove random writes from SST file ingestion (#4172) 2018-07-27 16:12:23 -07:00
external_sst_file_test.cc Pending output file number should be released after bulkload failure (#4145) 2018-07-17 14:13:16 -07:00
fault_injection_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
file_indexer.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
file_indexer.h Change RocksDB License 2017-07-15 16:11:23 -07:00
file_indexer_test.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
filename_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_job.cc Store the return value of Fsync for check 2018-09-14 13:29:56 -07:00
flush_job.h Skip deleted WALs during recovery 2018-05-03 15:43:09 -07:00
flush_job_test.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
flush_scheduler.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_scheduler.h Change RocksDB License 2017-07-15 16:11:23 -07:00
forward_iterator.cc Relax VersionStorageInfo::GetOverlappingInputs check (#4050) 2018-07-13 17:42:38 -07:00
forward_iterator.h Comment out unused variables 2018-03-05 13:13:41 -08:00
forward_iterator_bench.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
internal_stats.cc Add kOptionsStatistics to GetProperty() (#3966) 2018-06-15 17:28:01 -07:00
internal_stats.h Add kOptionsStatistics to GetProperty() (#3966) 2018-06-15 17:28:01 -07:00
job_context.h Update JobContext. (#3949) 2018-08-03 17:42:34 -07:00
listener_test.cc Avoiding write stall caused by manual flushes (#4297) 2018-08-29 12:12:55 -07:00
log_format.h Fix an inaccurate comment (#4315) 2018-08-24 18:13:20 -07:00
log_reader.cc Improve type conversion (#4367) 2018-09-14 11:12:52 -07:00
log_reader.h Delete code for WAL reader to start at nonzero offset (#4362) 2018-09-13 17:13:03 -07:00
log_test.cc Delete code for WAL reader to start at nonzero offset (#4362) 2018-09-13 17:13:03 -07:00
log_writer.cc Pass manual_wal_flush also to the first wal file 2018-05-14 10:57:56 -07:00
log_writer.h Pass manual_wal_flush also to the first wal file 2018-05-14 10:57:56 -07:00
logs_with_prep_tracker.cc Skip deleted WALs during recovery 2018-05-03 15:43:09 -07:00
logs_with_prep_tracker.h Skip deleted WALs during recovery 2018-05-03 15:43:09 -07:00
malloc_stats.cc Disallow compactions if there isn't enough free space 2018-03-06 16:27:54 -08:00
malloc_stats.h Change RocksDB License 2017-07-15 16:11:23 -07:00
manual_compaction_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
memtable.cc #3865 fix performance regression introduced by MergeOperator.ShouldMerge (#4266) 2018-08-16 10:58:05 -07:00
memtable.h Adding a method for memtable class for memtable getting flushed. (#4304) 2018-08-23 17:14:25 -07:00
memtable_list.cc Adding a method for memtable class for memtable getting flushed. (#4304) 2018-08-23 17:14:25 -07:00
memtable_list.h Skip deleted WALs during recovery 2018-05-03 15:43:09 -07:00
memtable_list_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
merge_context.h #3865 fix performance regression introduced by MergeOperator.ShouldMerge (#4266) 2018-08-16 10:58:05 -07:00
merge_helper.cc Range deletion performance improvements + cleanup (#4014) 2018-07-12 14:42:39 -07:00
merge_helper.h Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
merge_helper_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_operator.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
obsolete_files_test.cc Modify verification logic of ObsoleteOptionsFileTest (#4218) 2018-08-03 13:57:40 -07:00
options_file_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
perf_context_test.cc add missing counters in readonly mode (#4260) 2018-08-22 22:43:13 -07:00
pinned_iterators_manager.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_db_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
pre_release_callback.h Fix pre_release callback argument list. 2018-04-05 11:12:16 -07:00
prefix_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
range_del_aggregator.cc Restrict RangeDelAggregator's tombstone end-key truncation (#4356) 2018-09-10 17:42:43 -07:00
range_del_aggregator.h Support range deletion tombstones in IngestExternalFile SSTs (#3778) 2018-07-13 22:43:09 -07:00
range_del_aggregator_test.cc Restrict RangeDelAggregator's tombstone end-key truncation (#4356) 2018-09-10 17:42:43 -07:00
read_callback.h WriteUnPrepared Txn: Disable seek to snapshot optimization (#3955) 2018-06-27 12:23:07 -07:00
repair.cc Delete code for WAL reader to start at nonzero offset (#4362) 2018-09-13 17:13:03 -07:00
repair_test.cc Sync CURRENT file during checkpoint (#4322) 2018-08-28 12:43:18 -07:00
snapshot_checker.h Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
snapshot_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
snapshot_impl.h BlobDB: Fix VisibleToActiveSnapshot() (#4236) 2018-08-06 16:57:42 -07:00
table_cache.cc Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
table_cache.h Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
table_properties_collector.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
table_properties_collector.h Comment out unused variables 2018-03-05 13:13:41 -08:00
table_properties_collector_test.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
transaction_log_impl.cc Delete code for WAL reader to start at nonzero offset (#4362) 2018-09-13 17:13:03 -07:00
transaction_log_impl.h WritePrepared Txn: Refactor conf params 2017-11-10 17:28:12 -08:00
version_builder.cc VersionBuilder: optmize SaveTo() to linear time. (#4366) 2018-09-14 19:43:04 -07:00
version_builder.h Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
version_builder_test.cc Remove random writes from SST file ingestion (#4172) 2018-07-27 16:12:23 -07:00
version_edit.cc Update recovery code for version edits group commit. (#3945) 2018-08-20 14:58:00 -07:00
version_edit.h Update recovery code for version edits group commit. (#3945) 2018-08-20 14:58:00 -07:00
version_edit_test.cc Update recovery code for version edits group commit. (#3945) 2018-08-20 14:58:00 -07:00
version_set.cc Delete code for WAL reader to start at nonzero offset (#4362) 2018-09-13 17:13:03 -07:00
version_set.h Update recovery code for version edits group commit. (#3945) 2018-08-20 14:58:00 -07:00
version_set_test.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
wal_manager.cc Delete code for WAL reader to start at nonzero offset (#4362) 2018-09-13 17:13:03 -07:00
wal_manager.h Fix memleak when DB::DeleteFile() 2018-01-11 18:57:33 -08:00
wal_manager_test.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
write_batch.cc WriteUnPrepared: Implement unprepared batches for transactions (#4104) 2018-07-24 00:13:18 -07:00
write_batch_base.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_batch_internal.h WriteUnPrepared: Add new WAL marker kTypeBeginUnprepareXID (#4069) 2018-06-28 18:58:29 -07:00
write_batch_test.cc WriteUnPrepared: Add support for recovering WriteUnprepared transactions (#4078) 2018-07-06 17:59:13 -07:00
write_callback.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_callback_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
write_controller.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_thread.cc Fix write get stuck when pipelined write is enabled (#4143) 2018-07-17 17:27:51 -07:00
write_thread.h Fix write get stuck when pipelined write is enabled (#4143) 2018-07-17 17:27:51 -07:00