• A
    do not read next datablock if upperbound is reached · a30a6960
    Aaron Gao 提交于
    Summary:
    Now if we have iterate_upper_bound set, we continue read until get a key >= upper_bound. For a lot of cases that neighboring data blocks have a user key gap between them, our index key will be a user key in the middle to get a shorter size. For example, if we have blocks:
    [a b c d][f g h]
    Then the index key for the first block will be 'e'.
    then if upper bound is any key between 'd' and 'e', for example, d1, d2, ..., d99999999999, we don't have to read the second block and also know that we have done our iteration by reaching the last key that smaller the upper bound already.
    
    This diff can reduce RA in most cases.
    Closes https://github.com/facebook/rocksdb/pull/2239
    
    Differential Revision: D4990693
    
    Pulled By: lightmark
    
    fbshipit-source-id: ab30ea2e3c6edf3fddd5efed3c34fcf7739827ff
    a30a6960
mock_table.cc 4.6 KB