On Thu, Feb 18, 2021 at 3:13 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> Agreed. Thanks for your explanation.
Attached is v5, which has some of the changes I talked about. Changes
from v4 include:
* Now only updates metapage during btvacuumcleanup() in the first
patch, which is enough to fix the existing
IndexVacuumInfo.num_heap_tuples issue.
* Restored _bt_getbuf() page-from-FSM XID check. Out of sheer paranoia.
* The second patch in the series now respects work_mem when sizing the
BTPendingRecycle array.
* New enhancement to the XID GlobalVisCheckRemovableFullXid() test
used in the second patch, to allow it to recycle even more pages.
(Still unsure of some of the details here.)
I would like to commit the first patch in a few days -- I refer to the
big patch that makes deleted page XIDs 64-bit/full. Can you take a
look at that one, Masahiko? That would be helpful. I can produce a bug
fix for the IndexVacuumInfo.num_heap_tuples issue fairly easily, but I
think that that should be written after the first patch is finalized
and committed.
The second patch (the new recycling optimization) will require more
work and testing.
Thanks!
--
Peter Geoghegan