On Sat, Jun 20, 2020 at 10:32 AM Thomas Munro <thomas.mu...@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.