• delete superversions in BackgroundCallPurge (#6146) · 39fcaf82
    解轶伦 提交于
    Summary:
    I found that CleanupSuperVersion() may block Get() for 30ms+ (per MemTable is 256MB).
    
    Then I found "delete sv" in ~SuperVersion() takes the time.
    
    The backtrace looks like this
    
    DBImpl::GetImpl() -> DBImpl::ReturnAndCleanupSuperVersion() ->
    DBImpl::CleanupSuperVersion() : delete sv; -> ~SuperVersion()
    
    I think it's better to delete in a background thread,  please review it。
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/6146
    
    Differential Revision: D18972066
    
    fbshipit-source-id: 0f7b0b70b9bb1e27ad6fc1c8a408fbbf237ae08c
    39fcaf82
column_family.cc 56.7 KB