Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crl-release-20.1: vfs: Add vfs.Prefetch, use it for reading ahead data blocks #733

Merged

Commits on Jun 10, 2020

  1. vfs: Add vfs.Prefetch, use it for reading ahead data blocks

    For sequential-like IO workload where we read
    data blocks one after the other in quick succession,
    signalling the OS to asynchronously bring them to
    cache in advance can deliver significant savings in IOPS
    dispatched. In IOPS-bound workloads such as backup on
    an EBS disk, this delivers a 3x speedup. Presumably
    aggregate queries and compactions will be faster
    as well, though this hasn't been benchmarked in
    practice yet.
    
    This change maintains a counter for the number of data
    block reads performed in a singleLevelIterator, and
    when that count exceeds 2, a readahead system
    call is made on Linux. RocksDB has almost
    the exact same behaviour, including the same
    min/max readahead sizes and read count thresholds.
    
    Will address cockroachdb/cockroach#49710
    when it lands in cockraoch.
    itsbilal committed Jun 10, 2020
    Configuration menu
    Copy the full SHA
    9d9346e View commit details
    Browse the repository at this point in the history