• I
    CompactionPicker · c699c84a
    Igor Canadi 提交于
    Summary:
    This is a big one. This diff moves all the code related to picking compactions from VersionSet to new class CompactionPicker. Column families' compactions will be completely separate processes, so we need to have multiple CompactionPickers.
    
    To make this easier to review, most of the code change is just copy/paste. There is also a small change not to use VersionSet::current_, but rather to take `Version* version` as a parameter. Most of the other code is exactly the same.
    
    In future diffs, I will also make some improvements to CompactionPickers. I think the most important part will be encapsulating it better. Currently Version, VersionSet, Compaction and CompactionPicker are all friend classes, which makes it harder to change the implementation.
    
    This diff depends on D15171, D15183, D15189 and D15201
    
    Test Plan: `make check`
    
    Reviewers: kailiu, sdong, dhruba, haobo
    
    Reviewed By: kailiu
    
    CC: leveldb
    
    Differential Revision: https://reviews.facebook.net/D15207
    c699c84a
version_set.cc 70.4 KB