• V
    Reuse file iterators in tailing iterator when memtable is flushed · 7824444b
    Venkatesh Radhakrishnan 提交于
    Summary:
    Under a tailing workload, there were increased block cache
    misses when a memtable was flushed because we were rebuilding iterators
    in that case since the version set changed. This was exacerbated in the
    case of iterate_upper_bound, since file iterators which were over the
    iterate_upper_bound would have been deleted and are now brought back as
    part of the Rebuild, only to be deleted again. We now renew the iterators
    and only build iterators for files which are added and delete file
    iterators for files which are deleted.
    Refer to https://reviews.facebook.net/D50463 for previous version
    
    Test Plan: DBTestTailingIterator.TailingIteratorTrimSeekToNext
    
    Reviewers: anthony, IslamAbdelRahman, igor, tnovak, yhchiang, sdong
    
    Reviewed By: sdong
    
    Subscribers: yhchiang, march, dhruba, leveldb, lovro
    
    Differential Revision: https://reviews.facebook.net/D50679
    7824444b
forward_iterator.cc 23.3 KB