rocksdb/utilities/blob_db
Levi Tamasi 1b4be4cac9 BlobDB: ignore trivially moved files when updating the SST<->blob file mapping (#6381)
Summary:
BlobDB keeps track of the mapping between SSTs and blob files using
the `OnFlushCompleted` and `OnCompactionCompleted` callbacks of
the `EventListener` interface: upon receiving a flush notification, a link
is added between the newly flushed SST and the corresponding blob file;
for compactions, links are removed for the inputs and added for the outputs.
The earlier code performed this link deletion and addition even for
trivially moved files; the new code walks through the two lists together
(in a fashion that's similar to merge sort) and skips such files.
This should mitigate https://github.com/facebook/rocksdb/issues/6338,
wherein an assertion is triggered with the earlier code when a compaction
notification for a trivial move precedes the flush notification for the
moved SST.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6381

Test Plan: make check

Differential Revision: D19773729

Pulled By: ltamasi

fbshipit-source-id: ae0f273ded061110dd9334e8fb99b0d7786650b0
2020-02-07 12:50:57 -08:00
..
blob_compaction_filter.cc Add statistics for BlobDB GC (#6296) 2020-01-29 16:46:16 -08:00
blob_compaction_filter.h Add statistics for BlobDB GC (#6296) 2020-01-29 16:46:16 -08:00
blob_db_gc_stats.h Add statistics for BlobDB GC (#6296) 2020-01-29 16:46:16 -08:00
blob_db_impl_filesnapshot.cc Add file number/oldest referenced blob file number to {Sst,Live}FileMetaData (#6011) 2019-11-07 14:04:16 -08:00
blob_db_impl.cc BlobDB: ignore trivially moved files when updating the SST<->blob file mapping (#6381) 2020-02-07 12:50:57 -08:00
blob_db_impl.h Remove earlier partial BlobDB GC implementation (#6278) 2020-01-14 15:08:44 -08:00
blob_db_iterator.h Remove earlier partial BlobDB GC implementation (#6278) 2020-01-14 15:08:44 -08:00
blob_db_listener.h BlobDB: Maintain mapping between blob files and SSTs (#6020) 2019-11-11 14:01:34 -08:00
blob_db_test.cc Add statistics for BlobDB GC (#6296) 2020-01-29 16:46:16 -08:00
blob_db.cc Log garbage_collection_cutoff alongside the other BlobDB options 2019-12-20 11:00:53 -08:00
blob_db.h Remove earlier partial BlobDB GC implementation (#6278) 2020-01-14 15:08:44 -08:00
blob_dump_tool.cc Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
blob_dump_tool.h Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
blob_file.cc Introduce a new storage specific Env API (#5761) 2019-12-13 14:48:41 -08:00
blob_file.h Remove earlier partial BlobDB GC implementation (#6278) 2020-01-14 15:08:44 -08:00
blob_log_format.cc utilities: Fix build failure with -Werror=maybe-uninitialized (#5074) 2019-03-18 11:35:06 -07:00
blob_log_format.h Refactor blob file creation logic (#6066) 2019-11-26 13:28:32 -08:00
blob_log_reader.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
blob_log_reader.h Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
blob_log_writer.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
blob_log_writer.h Use delete to disable automatic generated methods. (#5009) 2019-09-11 18:09:00 -07:00