Skip to content
  • amytai's avatar
    Disallow compactions if there isn't enough free space · 0a3db28d
    amytai authored
    Summary:
    This diff handles cases where compaction causes an ENOSPC error.
    This does not handle corner cases where another background job is started while compaction is running, and the other background job triggers ENOSPC, although we do allow the user to provision for these background jobs with SstFileManager::SetCompactionBufferSize.
    It also does not handle the case where compaction has finished and some other background job independently triggers ENOSPC.
    
    Usage: Functionality is inside SstFileManager. In particular, users should set SstFileManager::SetMaxAllowedSpaceUsage, which is the reference highwatermark for determining whether to cancel compactions.
    Closes https://github.com/facebook/rocksdb/pull/3449
    
    Differential Revision: D7016941
    
    Pulled By: amytai
    
    fbshipit-source-id: 8965ab8dd8b00972e771637a41b4e6c645450445
    0a3db28d