• A
    Apply use_direct_io_for_flush_and_compaction to writes only · 072ae671
    Andrew Kryczka 提交于
    Summary:
    Previously `DBOptions::use_direct_io_for_flush_and_compaction=true` combined with `DBOptions::use_direct_reads=false` could cause RocksDB to simultaneously read from two file descriptors for the same file, where background reads used direct I/O and foreground reads used buffered I/O. Our measurements found this mixed-mode I/O negatively impacted foreground read perf, compared to when only buffered I/O was used.
    
    This PR makes the mixed-mode I/O situation impossible by repurposing `DBOptions::use_direct_io_for_flush_and_compaction` to only apply to background writes, and `DBOptions::use_direct_reads` to apply to all reads. There is no risk of direct background direct writes happening simultaneously with buffered reads since we never read from and write to the same file simultaneously.
    Closes https://github.com/facebook/rocksdb/pull/3829
    
    Differential Revision: D7915443
    
    Pulled By: ajkr
    
    fbshipit-source-id: 78bcbf276449b7e7766ab6b0db246f789fb1b279
    072ae671
可在Tags中查看这些版本中当前仓库的状态.
HISTORY.md 59.3 KB