rocksdb/db
Yanqin Jin c5a64cffd2 Avoid fsync on the same directory in atomic flush (#4817)
Summary:
In `DBImpl::AtomicFlushMemTablesToOutputFiles`, we need to call fsync only once
on the same data directory. If two column families share a common directory for
their data, we call fsync only once.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4817

Differential Revision: D13543689

Pulled By: riversand963

fbshipit-source-id: 4701d77c96a47802fbf6cb9f3337ee65d46b95f5
2019-02-12 12:28:36 -08:00
..
builder.cc Reduce scope of compression dictionary to single SST (#4952) 2019-02-11 19:47:32 -08:00
builder.h Reduce scope of compression dictionary to single SST (#4952) 2019-02-11 19:47:32 -08:00
c.cc Deprecate CompactionFilter::IgnoreSnapshots() = false (#4954) 2019-02-07 16:57:33 -08:00
c_test.c Get CompactionJobInfo from CompactFiles 2018-12-13 14:21:24 -08:00
column_family.cc Digest ZSTD compression dictionary once when writing SST file (#4849) 2019-01-18 19:12:57 -08:00
column_family.h Lock free MultiGet (#4754) 2019-01-02 11:42:54 -08:00
column_family_test.cc Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
compact_files_test.cc Get CompactionJobInfo from CompactFiles 2018-12-13 14:21:24 -08:00
compacted_db_impl.cc move dump stats to a separate thread (#4382) 2018-10-08 22:54:43 -07:00
compacted_db_impl.h Enable checkpoint of read-only db (#4681) 2018-12-07 17:06:02 -08:00
compaction.cc Correct the code comment in Compaction::KeyNotExistsBeyondOutputLevel (#4902) 2019-01-23 18:00:56 -08:00
compaction.h Truncate range tombstones by leveraging InternalKeys (#4432) 2018-10-09 15:19:38 -07:00
compaction_iteration_stats.h
compaction_iterator.cc WritePrepared: relax assert in compaction iterator (#4969) 2019-02-11 15:01:46 -08:00
compaction_iterator.h Deprecate CompactionFilter::IgnoreSnapshots() = false (#4954) 2019-02-07 16:57:33 -08:00
compaction_iterator_test.cc WritePrepared: fix issue with snapshot released during compaction (#4858) 2019-01-16 09:55:32 -08:00
compaction_job.cc Reduce scope of compression dictionary to single SST (#4952) 2019-02-11 19:47:32 -08:00
compaction_job.h Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
compaction_job_stats_test.cc
compaction_job_test.cc Zero seqnum of final key / drop final tombstone when compacting to bottommost level 2019-02-01 09:21:57 -08:00
compaction_picker.cc Move FIFOCompactionPicker to a separate file (#4724) 2018-11-29 16:04:52 -08:00
compaction_picker.h Move FIFOCompactionPicker to a separate file (#4724) 2018-11-29 16:04:52 -08:00
compaction_picker_fifo.cc Move FIFOCompactionPicker to a separate file (#4724) 2018-11-29 16:04:52 -08:00
compaction_picker_fifo.h Move FIFOCompactionPicker to a separate file (#4724) 2018-11-29 16:04:52 -08:00
compaction_picker_test.cc Make compaction_pri = kMinOverlappingRatio to be default (#4911) 2019-01-23 16:47:38 -08:00
compaction_picker_universal.cc
compaction_picker_universal.h
comparator_db_test.cc
convenience.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
corruption_test.cc fix DeleteRange memory leak for mmap and block cache (#4810) 2018-12-20 21:59:49 -08:00
cuckoo_table_db_test.cc
db_basic_test.cc Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
db_blob_index_test.cc
db_block_cache_test.cc Reduce scope of compression dictionary to single SST (#4952) 2019-02-11 19:47:32 -08:00
db_bloom_filter_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
db_compaction_filter_test.cc Deprecate CompactionFilter::IgnoreSnapshots() = false (#4954) 2019-02-07 16:57:33 -08:00
db_compaction_test.cc Preload some files even if options.max_open_files (#3340) 2018-12-28 18:02:28 -08:00
db_dynamic_level_test.cc Fix flaky DBDynamicLevelTest.DynamicLevelMaxBytesBase2 (#4668) 2018-11-12 16:42:16 -08:00
db_encryption_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
db_filesnapshot.cc Remove redundant member var and set options (#4631) 2018-11-12 12:24:26 -08:00
db_flush_test.cc Improve flushing multiple column families (#4708) 2018-12-13 15:12:40 -08:00
db_impl.cc BYTES_READ stats miscount for NotFound cases (#4938) 2019-02-05 10:53:35 -08:00
db_impl.h Take snapshots once for all cf flushes (#4934) 2019-01-31 12:21:59 -08:00
db_impl_compaction_flush.cc Avoid fsync on the same directory in atomic flush (#4817) 2019-02-12 12:28:36 -08:00
db_impl_debug.cc Enable atomic flush (#4023) 2018-10-26 15:08:43 -07:00
db_impl_experimental.cc
db_impl_files.cc Fix #3840: only SyncClosedLogs for multiple CFs (#4460) 2018-11-13 11:32:16 -08:00
db_impl_open.cc Add a new CPU time counter to compaction report (#4889) 2019-01-29 17:24:00 -08:00
db_impl_readonly.cc Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
db_impl_readonly.h Get CompactionJobInfo from CompactFiles 2018-12-13 14:21:24 -08:00
db_impl_write.cc Add a new CPU time counter to compaction report (#4889) 2019-01-29 17:24:00 -08:00
db_info_dumper.cc avoid copying when iterating using range-based for (#4459) 2018-10-09 17:15:51 -07:00
db_info_dumper.h
db_inplace_update_test.cc
db_io_failure_test.cc Disable DBIOFailureTest.NoSpaceCompactRange in LITE (#4596) 2018-10-29 14:36:31 -07:00
db_iter.cc Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
db_iter.h Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
db_iter_stress_test.cc
db_iter_test.cc
db_iterator_test.cc Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
db_log_iter_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
db_memtable_test.cc Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
db_merge_operator_test.cc Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
db_options_test.cc move dump stats to a separate thread (#4382) 2018-10-08 22:54:43 -07:00
db_properties_test.cc fix accounting for range tombstones in TableProperties (#4841) 2019-01-02 15:08:53 -08:00
db_range_del_test.cc Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
db_sst_test.cc Try to fix DBSSTTest.RateLimitedDelete flakiness (#4840) 2019-01-03 11:05:19 -08:00
db_statistics_test.cc
db_table_properties_test.cc Allow dynamic modification of window size and deletion trigger (#4403) 2018-09-20 15:15:28 -07:00
db_tailing_iter_test.cc
db_test.cc Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
db_test2.cc Reduce scope of compression dictionary to single SST (#4952) 2019-02-11 19:47:32 -08:00
db_test_util.cc Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
db_test_util.h Remove cuckoo hash memtable (#4953) 2019-02-07 16:15:27 -08:00
db_universal_compaction_test.cc Adapt three unit tests with newer compiler/libraries (#4562) 2018-10-24 08:17:56 -07:00
db_wal_test.cc Preload some files even if options.max_open_files (#3340) 2018-12-28 18:02:28 -08:00
db_write_test.cc
dbformat.cc
dbformat.h s/CacheAllocator/MemoryAllocator/g (#4590) 2018-10-26 14:30:30 -07:00
dbformat_test.cc
deletefile_test.cc
error_handler.cc Fix typos in comments (#4456) 2018-10-04 20:46:50 -07:00
error_handler.h Fix typos in comments (#4456) 2018-10-04 20:46:50 -07:00
error_handler_test.cc Fix regression test failures introduced by PR #4164 (#4375) 2018-09-17 13:14:07 -07:00
event_helpers.cc Auto recovery from out of space errors (#4164) 2018-09-15 13:43:04 -07:00
event_helpers.h Auto recovery from out of space errors (#4164) 2018-09-15 13:43:04 -07:00
experimental.cc
external_sst_file_basic_test.cc Checksum properties block for block-based table (#4956) 2019-02-11 11:50:01 -08:00
external_sst_file_ingestion_job.cc Verify checksum before ingestion (#4916) 2019-01-29 17:17:29 -08:00
external_sst_file_ingestion_job.h
external_sst_file_test.cc Verify checksum before ingestion (#4916) 2019-01-29 17:17:29 -08:00
fault_injection_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
file_indexer.cc
file_indexer.h
file_indexer_test.cc
filename_test.cc
flush_job.cc Add a new CPU time counter to compaction report (#4889) 2019-01-29 17:24:00 -08:00
flush_job.h Add support to flush multiple CFs atomically (#4262) 2018-10-15 20:01:17 -07:00
flush_job_test.cc Use correct FileMeta for atomic flush result install (#4932) 2019-01-31 14:49:51 -08:00
flush_scheduler.cc
flush_scheduler.h
forward_iterator.cc Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
forward_iterator.h
forward_iterator_bench.cc
internal_stats.cc Add a new CPU time counter to compaction report (#4889) 2019-01-29 17:24:00 -08:00
internal_stats.h Add a new CPU time counter to compaction report (#4889) 2019-01-29 17:24:00 -08:00
job_context.h WritePrepared: Fix visible key compacted out by compaction (#4883) 2019-01-15 21:34:38 -08:00
listener_test.cc Use chrono::time_point instead of time_t (#4868) 2019-01-16 09:51:05 -08:00
log_format.h
log_reader.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
log_reader.h Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
log_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
log_writer.cc
log_writer.h Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
logs_with_prep_tracker.cc
logs_with_prep_tracker.h
malloc_stats.cc Detect if Jemalloc is linked with the binary (#4844) 2019-01-03 16:30:12 -08:00
malloc_stats.h
manual_compaction_test.cc
memtable.cc Disallow customized hash function in DynamicBloom (#4915) 2019-01-24 10:34:30 -08:00
memtable.h Refactor atomic flush result installation to MANIFEST (#4791) 2019-01-03 20:56:24 -08:00
memtable_list.cc Use correct FileMeta for atomic flush result install (#4932) 2019-01-31 14:49:51 -08:00
memtable_list.h Use correct FileMeta for atomic flush result install (#4932) 2019-01-31 14:49:51 -08:00
memtable_list_test.cc Use correct FileMeta for atomic flush result install (#4932) 2019-01-31 14:49:51 -08:00
merge_context.h Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
merge_helper.cc Fix analyze error on possible un-initialized value (#4937) 2019-02-01 09:41:27 -08:00
merge_helper.h Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
merge_helper_test.cc Allow full merge when root of history for a key is reached (#4909) 2019-01-23 21:46:10 -08:00
merge_operator.cc
merge_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
obsolete_files_test.cc
options_file_test.cc
perf_context_test.cc Allow copy for PerfContext objects (#4919) 2019-02-05 14:29:08 -08:00
pinned_iterators_manager.h
plain_table_db_test.cc Remove PlainTable's feature store_index_in_file (#4914) 2019-01-28 12:50:22 -08:00
pre_release_callback.h
prefix_test.cc
range_del_aggregator.cc Remove stale TODO (#4800) 2018-12-19 15:45:37 -08:00
range_del_aggregator.h Fix unused member compile error 2018-12-18 14:28:42 -08:00
range_del_aggregator_bench.cc Fix Windows broken build error due to non-const override (#4798) 2018-12-19 13:29:51 -08:00
range_del_aggregator_test.cc Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
range_tombstone_fragmenter.cc Add compaction logic to RangeDelAggregatorV2 (#4758) 2018-12-17 13:20:51 -08:00
range_tombstone_fragmenter.h Add compaction logic to RangeDelAggregatorV2 (#4758) 2018-12-17 13:20:51 -08:00
range_tombstone_fragmenter_test.cc Prepare FragmentedRangeTombstoneIterator for use in compaction (#4740) 2018-12-11 12:10:48 -08:00
read_callback.h
repair.cc Add compaction logic to RangeDelAggregatorV2 (#4758) 2018-12-17 13:20:51 -08:00
repair_test.cc Acquire lock on DB LOCK file before starting repair. (#4435) 2018-10-12 10:41:54 -07:00
snapshot_checker.h WritePrepared: fix issue with snapshot released during compaction (#4858) 2019-01-16 09:55:32 -08:00
snapshot_impl.cc
snapshot_impl.h Remove duplicates from SnapshotList::GetAll (#4860) 2019-01-09 16:25:42 -08:00
table_cache.cc Introduce a CPU time counter in perf_context (#4741) 2018-12-20 12:03:44 -08:00
table_cache.h Preload some files even if options.max_open_files (#3340) 2018-12-28 18:02:28 -08:00
table_properties_collector.cc Promote rocksdb.{deleted.keys,merge.operands} to main table properties (#4594) 2018-10-30 15:34:27 -07:00
table_properties_collector.h Promote rocksdb.{deleted.keys,merge.operands} to main table properties (#4594) 2018-10-30 15:34:27 -07:00
table_properties_collector_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
transaction_log_impl.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
transaction_log_impl.h Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
version_builder.cc Preload some files even if options.max_open_files (#3340) 2018-12-28 18:02:28 -08:00
version_builder.h Preload some files even if options.max_open_files (#3340) 2018-12-28 18:02:28 -08:00
version_builder_test.cc
version_edit.cc Add a placeholder in manifest indicating ignorable record (#4960) 2019-02-08 11:33:11 -08:00
version_edit.h Add a unit test to Ignorable manfiest record (#4964) 2019-02-11 11:20:24 -08:00
version_edit_test.cc Add a unit test to Ignorable manfiest record (#4964) 2019-02-11 11:20:24 -08:00
version_set.cc Add a new CPU time counter to compaction report (#4889) 2019-01-29 17:24:00 -08:00
version_set.h Remove v1 RangeDelAggregator (#4778) 2018-12-17 17:33:46 -08:00
version_set_test.cc Refactor atomic flush result installation to MANIFEST (#4791) 2019-01-03 20:56:24 -08:00
wal_manager.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
wal_manager.h
wal_manager_test.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
write_batch.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
write_batch_base.cc
write_batch_internal.h
write_batch_test.cc Clean up FragmentedRangeTombstoneList (#4692) 2018-11-28 15:29:02 -08:00
write_callback.h
write_callback_test.cc
write_controller.cc
write_controller.h
write_controller_test.cc
write_thread.cc Add more sync point to fix flaky test GroupCommitTest 2018-11-07 14:07:53 -08:00
write_thread.h Fix skip WAL for whole write_group when leader's callback fail (#4838) 2019-01-03 12:40:42 -08:00