• I
    Fix compaction conflict with running compaction · 5691a1d8
    Islam AbdelRahman 提交于
    Summary:
    Issue scenario:
    (1) We have 3 files in L1 and we issue a compaction that will compact them into 1 file in L2
    (2) While compaction (1) is running, we flush a file into L0 and trigger another compaction that decide to move this file to L1 and then move it again to L2 (this file don't overlap with any other files)
    (3) compaction (1) finishes and install the file it generated in L2, but this file overlap with the file we generated in (2) so we break the LSM consistency
    
    Looks like this issue can be triggered by using non-exclusive manual compaction or AddFile()
    
    Test Plan: unit tests
    
    Reviewers: sdong
    
    Reviewed By: sdong
    
    Subscribers: hermanlee4, jkedgar, andrewkr, dhruba, yoshinorim
    
    Differential Revision: https://reviews.facebook.net/D64947
    5691a1d8
db_impl.cc 219.4 KB