On Sat, Jun 20, 2020 at 10:32 AM Thomas Munro <thomas.munro@gmail.com> wrote:
> Rebased. I'll add this to the open commitfest.
I traced the recovery process while running pgbench -M prepared -c16
-j16 -t10000 (= 160,000 transactions). With the patch, the number of
lseeks went from 1,080,661 (6.75 per pgbench transaction) to just 85.
I went ahead and pushed this patch.
There's still the matter of crazy numbers of lseeks in regular
backends; looking at all processes while running the above test, I get
1,469,060 (9.18 per pgbench transaction) without -M prepared, and
193,722 with -M prepared (1.21 per pgbench transaction). Fixing that
with this approach will require bullet-proof shared invalidation, but
I think it's doable, in later work.