• I
    Fix conflict between AddFile() and CompactRange() · 87dfc1d2
    Islam AbdelRahman 提交于
    Summary:
    Fix the conflict bug between AddFile() and CompactRange() by
    - Make sure that no AddFile calls are running when asking CompactionPicker to pick compaction for manual compaction
    - If AddFile() run after we pick the compaction for the manual compaction it will be aware of it since we will add the manual compaction to running_compactions_ after picking it
    
    This will solve these 2 scenarios
    - If AddFile() is running, we will wait for it to finish before we pick a compaction for the manual compaction
    - If we already picked a manual compaction and then AddFile() started ... we ensure that it never ingest a file in a level that will overlap with the manual compaction
    
    Test Plan: unit tests
    
    Reviewers: sdong
    
    Reviewed By: sdong
    
    Subscribers: andrewkr, yoshinorim, jkedgar, dhruba
    
    Differential Revision: https://reviews.facebook.net/D64449
    87dfc1d2
db_impl.h 43.7 KB