• I
    CompactionJob · 74eb4fbe
    Igor Canadi 提交于
    Summary:
    Long awaited CompactionJob class! Move most compaction-related things from DBImpl to CompactionJob, making CompactionJob easier to test and understand.
    
    Currently this is just replicating exactly the same functionality with as little as change as possible. As future work, we should:
    1. Add CompactionJob tests (I think I'll do that tomorrow)
    2. Reduce CompactionJob's state that it inherits from DBImpl
    3. Figure out how to do yielding to flush better. Currently I implemented a callback as we agreed yesterday, but I don't think it's a good long term solution.
    
    This reduces db_impl.cc from 5000+ LOC to 3400!
    
    Test Plan: make check, will add CompactionJob-specific tests, probably also move some tests from db_test to compaction_job_test
    
    Reviewers: rven, yhchiang, sdong, ljin
    
    Reviewed By: ljin
    
    Subscribers: dhruba, leveldb
    
    Differential Revision: https://reviews.facebook.net/D27957
    74eb4fbe
db_impl.h 20.3 KB