OS eviction is only implemented in the python version. But the most intriguing part is that the python version also shows a degradation by simply evicting with pg_buffeercache_evict. I checked many times, first I thought that my differences had a sign inversion. Then I thought it could be something about the python speed, could it be? I am timing with explain analyse, if I was fetching the rows this would be the obvious culprit.
How did you account for the OS filesystem cache? It looks like you didn't, based on this run_benchmarks.sh code:
Sorry I attached the wrong file. I didn't use this run_benchmark.sh.
How should I go about recreating your result? This was my best guess at how to do so. But it doesn't feel like a good guess.
Could you try running the python script or should I provide it in a different way?
Are the numbers you showed comparing the patch to the master branch? Or is it just comparing enable_indexscan_prefetch=on to enable_indexscan_prefetch=off with the patch?
Just changing the parameter.
Did you write all this test code yourself?
In the sense of typing it no, I used cursor, so I just edited what I could see it didn't get right.
The results you've shown put the patch in a very negative light -- at least if taken at face value.
Please notice that I tried to be neutral in the narrative.
Maybe because I tested on a MacOS maybe it works differently from the type of
"modern storage" mentioned at the start of the thread.
There's no point in speculating what might have happened here until I can reproduce your results
I totally agree, that is why my first step was to try to reproduce your results independently.