• M
    Avoiding write stall caused by manual flushes (#4297) · 927f2749
    Mikhail Antonov 提交于
    Summary:
    Basically at the moment it seems it's possible to cause write stall by calling flush (either manually vis DB::Flush(), or from Backup Engine directly calling FlushMemTable() while background flush may be already happening.
    
    One of the ways to fix it is that in DBImpl::CompactRange() we already check for possible stall and delay flush if needed before we actually proceed to call FlushMemTable(). We can simply move this delay logic to separate method and call it from FlushMemTable.
    
    This is draft patch, for first look; need to check tests/update SyncPoints and most certainly would need to add allow_write_stall method to FlushOptions().
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/4297
    
    Differential Revision: D9420705
    
    Pulled By: mikhail-antonov
    
    fbshipit-source-id: f81d206b55e1d7b39e4dc64242fdfbceeea03fcc
    927f2749
可在Tags中查看这些版本中当前仓库的状态.
HISTORY.md 65.8 KB