• Y
    Use correct FileMeta for atomic flush result install (#4932) · 842cdc11
    Yanqin Jin 提交于
    Summary:
    1. this commit fixes our handling of a combination of two separate edge
    cases. If a flush job does not pick any memtable to flush (because another
    flush job has already picked the same memtables), and the column family
    assigned to the flush job is dropped right before RocksDB calls
    rocksdb::InstallMemtableAtomicFlushResults, our original code passes
    a FileMetaData object whose file number is 0, failing the assertion in
    rocksdb::InstallMemtableAtomicFlushResults (assert(m->GetFileNumber() > 0)).
    2. Also piggyback a small change: since we already create a local copy of column family's mutable CF options to eliminate potential race condition with `SetOptions` call, we might as well use the local copy in other function calls in the same scope.
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/4932
    
    Differential Revision: D13901322
    
    Pulled By: riversand963
    
    fbshipit-source-id: b936580af7c127ea0c6c19ea10cd5fcede9fb0f9
    842cdc11
db_impl_compaction_flush.cc 108.7 KB