• P
    Relax VersionStorageInfo::GetOverlappingInputs check (#4050) · 90fc4069
    Peter Mattis 提交于
    Summary:
    Do not consider the range tombstone sentinel key as causing 2 adjacent
    sstables in a level to overlap. When a range tombstone's end key is the
    largest key in an sstable, the sstable's end key is so to a "sentinel"
    value that is the smallest key in the next sstable with a sequence
    number of kMaxSequenceNumber. This "sentinel" is guaranteed to not
    overlap in internal-key space with the next sstable. Unfortunately,
    GetOverlappingFiles uses user-keys to determine overlap and was thus
    considering 2 adjacent sstables in a level to overlap if they were
    separated by this sentinel key. This in turn would cause compactions to
    be larger than necessary.
    
    Note that this conflicts with
    https://github.com/facebook/rocksdb/pull/2769 and cases
    `DBRangeDelTest.CompactionTreatsSplitInputLevelDeletionAtomically` to
    fail.
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/4050
    
    Differential Revision: D8844423
    
    Pulled By: ajkr
    
    fbshipit-source-id: df3f9f1db8f4cff2bff77376b98b83c2ae1d155b
    90fc4069
table_cache.cc 16.9 KB