• G
    Implement DB::PromoteL0 method · 2dc421df
    Giuseppe Ottaviano 提交于
    Summary:
    This diff implements a new `DB` method `PromoteL0` which moves all files in L0
    to a given level skipping compaction, provided that the files have disjoint
    ranges and all levels up to the target level are empty.
    
    This method provides finer-grain control for trivial compactions, and it is
    useful for bulk-loading pre-sorted keys. Compared to D34797, it does not change
    the semantics of an existing operation, which can impact existing code.
    
    PromoteL0 is designed to work well in combination with the proposed
    `GetSstFileWriter`/`AddFile` interface, enabling to "design" the level structure
    by populating one level at a time. Such fine-grained control can be very useful
    for static or mostly-static databases.
    
    Test Plan: `make check`
    
    Reviewers: IslamAbdelRahman, philipp, MarkCallaghan, yhchiang, igor, sdong
    
    Reviewed By: sdong
    
    Subscribers: dhruba
    
    Differential Revision: https://reviews.facebook.net/D37107
    2dc421df
db_impl.h 27.7 KB