• C
    Skip high levels with no key falling in the range in CompactRange (#6482) · afb97094
    Cheng Chang 提交于
    Summary:
    In CompactRange, if there is no key in memtable falling in the specified range, then flush is skipped.
    This PR extends this skipping logic to SST file levels: it starts compaction from the highest level (starting from L0) that has files with key falling in the specified range, instead of always starts from L0.
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/6482
    
    Test Plan:
    A new test ManualCompactionTest::SkipLevel is added.
    
    Also updated a test related to statistics of index block cache hit in db_test2, the index cache hit is increased by 1 in this PR because when checking overlap for the key range in L0, OverlapWithLevelIterator will do a seek in the table cache iterator, which will read from the cached index.
    
    Also updated db_compaction_test and db_test to use correct range for full compaction.
    
    Differential Revision: D20251149
    
    Pulled By: cheng-chang
    
    fbshipit-source-id: f822157cf4796972bd5035d9d7178d8dfb7af08b
    afb97094
db_test.cc 220.9 KB