21639: Reenable prefetch, but not on every read() 2.7.2
authorPeter Amstutz <peter.amstutz@curii.com>
Fri, 5 Apr 2024 22:53:37 +0000 (18:53 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Sat, 6 Apr 2024 01:25:36 +0000 (21:25 -0400)
commit864d721d5c32b3fdb260fbc1e3ddb5170bd670c5
treee0df85bbecda2c49f40b155bebebaa109c3e3642
parentc06d01222a65a21674b31d76f0bfbcc4facb253a
21639: Reenable prefetch, but not on every read()

Only do prefetch every 128 invocations of read().

This should dramatically reduce the overhead of computing prefetch
while still getting some or moste of the benefits of prefetching.

Indeed, benchmarking suggests that this prefetching strategy, by
advising the kernel to map blocks into RAM, may actually improve
throughput on the high end.

Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>
sdk/python/arvados/arvfile.py
sdk/python/arvados/keep.py
sdk/python/tests/test_arvfile.py
services/fuse/arvados_fuse/command.py