Wow, quick response.
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.
I see another message, checking that.
--
Alexandre
#!/bin/bash
# Purge OS filesystem cache
# Give this script appropriate privileges:
# macOS: sudo chmod +s purge_cache.sh (or add to sudoers)
# Linux: sudo chmod +s purge_cache.sh (or add to sudoers)
case "$(uname)" in
Darwin)
purge
;;
Linux)
sync
echo 3 > /proc/sys/vm/drop_caches
;;
*)
echo "Unsupported OS" >&2
exit 1
;;
esac