On Wed, Jul 23, 2025 at 9:59 PM Peter Geoghegan <p...@bowt.ie> wrote: > Tomas' index-prefetch-simple-master branch: > │ I/O Timings: shared read=1490.918 > │ Execution Time: 2015.731 ms
> Complex patch (same prewarming/eviction are omitted this time): > │ I/O Timings: shared read=138.856 > │ Execution Time: 768.454 ms > I'm using direct IO in both cases. This can easily be repeated, and is stable. Forget to add context about the master branch: Master can do this in 2386.850 ms, with "I/O Timings: shared read=1825.161". That's with buffered I/O (not direct I/O), and with the same pg_prewarm + pg_buffercache_evict_relation function calls as before. I'm running "echo 3 > /proc/sys/vm/drop_caches" to drop the filesystem cache here, too (unlike when testing the patches, where my use of direct i/o makes that step unnecessary). In summary, the simple patch + direct I/O clearly beats the master branch + buffered I/O here -- though not by much. While the complex patch gets a far greater benefit. -- Peter Geoghegan