Revision 331cb6364102e98e8572778188332d342b472233 authored by Yanqin Jin on 11 July 2018, 21:49:31 UTC, committed by Facebook Github Bot on 11 July 2018, 21:57:46 UTC
Summary:
Prior to this PR, there was a race condition between `DBImpl::SetOptions` and `BackupEngine::CreateNewBackup`, as illustrated below.
```
Time                  thread 1                           thread 2
  |   CreateNewBackup -> GetLiveFiles
  |                                         SetOptions -> RenameTempFileToOptionsFile
  |                                         SetOptions -> RenameTempFileToOptionsFile
  |                                         SetOptions -> RenameTempFileToOptionsFile // unlink oldest OPTIONS file
  |   copy the oldest OPTIONS // IO error!
  V
```
Proposed fix is to check the value of `DBImpl::disable_obsolete_files_deletion_` before calling `DeleteObsoleteOptionsFiles`.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4108

Differential Revision: D8796360

Pulled By: riversand963

fbshipit-source-id: 02045317f793ea4c7d4400a5bf333b8502fa3e82
1 parent 440621a
History
File Mode Size
adaptive_table_factory.cc -rw-r--r-- 4.8 KB
adaptive_table_factory.h -rw-r--r-- 1.8 KB
block.cc -rw-r--r-- 15.5 KB
block.h -rw-r--r-- 15.0 KB
block_based_filter_block.cc -rw-r--r-- 8.1 KB
block_based_filter_block.h -rw-r--r-- 4.7 KB
block_based_filter_block_test.cc -rw-r--r-- 8.5 KB
block_based_table_builder.cc -rw-r--r-- 34.5 KB
block_based_table_builder.h -rw-r--r-- 5.0 KB
block_based_table_factory.cc -rw-r--r-- 18.6 KB
block_based_table_factory.h -rw-r--r-- 7.1 KB
block_based_table_reader.cc -rw-r--r-- 112.0 KB
block_based_table_reader.h -rw-r--r-- 26.2 KB
block_builder.cc -rw-r--r-- 4.5 KB
block_builder.h -rw-r--r-- 2.1 KB
block_fetcher.cc -rw-r--r-- 8.1 KB
block_fetcher.h -rw-r--r-- 2.8 KB
block_prefix_index.cc -rw-r--r-- 7.8 KB
block_prefix_index.h -rw-r--r-- 2.2 KB
block_test.cc -rw-r--r-- 17.0 KB
bloom_block.cc -rw-r--r-- 700 bytes
bloom_block.h -rw-r--r-- 1.0 KB
cleanable_test.cc -rw-r--r-- 6.3 KB
cuckoo_table_builder.cc -rw-r--r-- 19.2 KB
cuckoo_table_builder.h -rw-r--r-- 4.6 KB
cuckoo_table_builder_test.cc -rw-r--r-- 26.5 KB
cuckoo_table_factory.cc -rw-r--r-- 2.6 KB
cuckoo_table_factory.h -rw-r--r-- 2.9 KB
cuckoo_table_reader.cc -rw-r--r-- 13.7 KB
cuckoo_table_reader.h -rw-r--r-- 3.0 KB
cuckoo_table_reader_test.cc -rw-r--r-- 19.7 KB
filter_block.h -rw-r--r-- 5.4 KB
flush_block_policy.cc -rw-r--r-- 3.1 KB
format.cc -rw-r--r-- 14.4 KB
format.h -rw-r--r-- 9.8 KB
full_filter_bits_builder.h -rw-r--r-- 2.8 KB
full_filter_block.cc -rw-r--r-- 7.5 KB
full_filter_block.h -rw-r--r-- 5.1 KB
full_filter_block_test.cc -rw-r--r-- 7.1 KB
get_context.cc -rw-r--r-- 8.4 KB
get_context.h -rw-r--r-- 3.7 KB
index_builder.cc -rw-r--r-- 8.1 KB
index_builder.h -rw-r--r-- 15.4 KB
internal_iterator.h -rw-r--r-- 4.8 KB
iter_heap.h -rw-r--r-- 1.2 KB
iterator.cc -rw-r--r-- 5.8 KB
iterator_wrapper.h -rw-r--r-- 3.2 KB
merger_test.cc -rw-r--r-- 4.5 KB
merging_iterator.cc -rw-r--r-- 12.9 KB
merging_iterator.h -rw-r--r-- 2.0 KB
meta_blocks.cc -rw-r--r-- 16.9 KB
meta_blocks.h -rw-r--r-- 5.5 KB
mock_table.cc -rw-r--r-- 4.4 KB
mock_table.h -rw-r--r-- 5.8 KB
partitioned_filter_block.cc -rw-r--r-- 12.7 KB
partitioned_filter_block.h -rw-r--r-- 4.1 KB
partitioned_filter_block_test.cc -rw-r--r-- 12.7 KB
persistent_cache_helper.cc -rw-r--r-- 4.4 KB
persistent_cache_helper.h -rw-r--r-- 1.5 KB
persistent_cache_options.h -rw-r--r-- 1.0 KB
plain_table_builder.cc -rw-r--r-- 9.4 KB
plain_table_builder.h -rw-r--r-- 4.6 KB
plain_table_factory.cc -rw-r--r-- 8.9 KB
plain_table_factory.h -rw-r--r-- 8.4 KB
plain_table_index.cc -rw-r--r-- 7.3 KB
plain_table_index.h -rw-r--r-- 7.2 KB
plain_table_key_coding.cc -rw-r--r-- 17.4 KB
plain_table_key_coding.h -rw-r--r-- 7.4 KB
plain_table_reader.cc -rw-r--r-- 24.4 KB
plain_table_reader.h -rw-r--r-- 8.4 KB
scoped_arena_iterator.h -rw-r--r-- 1.6 KB
sst_file_writer.cc -rw-r--r-- 9.1 KB
sst_file_writer_collectors.h -rw-r--r-- 2.7 KB
table_builder.h -rw-r--r-- 5.3 KB
table_properties.cc -rw-r--r-- 9.3 KB
table_properties_internal.h -rw-r--r-- 1.1 KB
table_reader.h -rw-r--r-- 4.7 KB
table_reader_bench.cc -rw-r--r-- 12.4 KB
table_test.cc -rw-r--r-- 126.2 KB
two_level_iterator.cc -rw-r--r-- 6.2 KB
two_level_iterator.h -rw-r--r-- 1.6 KB

back to top