Re: New IndexAM API controlling index vacuum strategies
Masahiko Sawada <sawada.mshk@gmail.com>
From: Masahiko Sawada <sawada.mshk@gmail.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Robert Haas <robertmhaas@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>,
Noah Misch <noah@leadboat.com>
Date: 2021-03-18T06:22:26Z
Lists: pgsql-hackers
Attachments
- v3-0003-Skip-index-vacuuming-when-there-is-a-risk-of-wrap.patch (application/octet-stream) patch v3-0003
On Thu, Mar 18, 2021 at 12:23 PM Peter Geoghegan <pg@bowt.ie> wrote: > > On Wed, Mar 17, 2021 at 7:16 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > Since I was thinking that always skipping index vacuuming on > > anti-wraparound autovacuum is legitimate, skipping index vacuuming > > only when we're really close to the point of going into read-only mode > > seems a bit conservative, but maybe a good start. I've attached a PoC > > patch to disable index vacuuming if the table's relfrozenxid is too > > older than autovacuum_freeze_max_age (older than 1.5x of > > autovacuum_freeze_max_age). > > Most anti-wraparound VACUUMs are really not emergencies, though. So > treating them as special simply because they're anti-wraparound > vacuums doesn't seem like the right thing to do. I think that we > should dynamically decide to do this when (antiwraparound) VACUUM has > already been running for some time. We need to delay the decision > until it is almost certainly true that we really have an emergency. That's a good idea to delay the decision until two_pass_strategy(). > > Can you take what you have here, and make the decision dynamic? Delay > it until we're done with the first heap scan? This will require > rebasing on top of the patch I posted. And then adding a third patch, > a little like the second patch -- but not too much like it. Attached the updated patch that can be applied on top of your v3 patches. Regards, -- Masahiko Sawada EDB: https://www.enterprisedb.com/
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Don't truncate heap when VACUUM's failsafe is in effect.
- 60f1f09ff443 14.0 landed
-
Teach VACUUM to bypass unnecessary index vacuuming.
- 5100010ee4d5 14.0 landed
-
Add wraparound failsafe to VACUUM.
- 1e55e7d1755c 14.0 landed
-
Truncate line pointer array during VACUUM.
- 3c3b8a4b2689 14.0 landed
-
Remove tupgone special case from vacuumlazy.c.
- 8523492d4e34 14.0 landed
-
Refactor lazy_scan_heap() loop.
- 7ab96cf6b312 14.0 landed
-
Propagate parallel VACUUM's buffer access strategy.
- 49f49defe7c0 14.0 cited
-
Simplify state managed by VACUUM.
- b4af70cb2103 14.0 landed
-
Notice that heap page has dead items during VACUUM.
- 0ea71c93a06d 14.0 landed
-
Adjust lazy_scan_heap() accounting comments.
- 7cde6b13a9b6 14.0 cited
-
Use full 64-bit XID for checking if a deleted GiST page is old enough.
- 6655a7299d83 13.0 cited
-
Fix some problems with VACUUM (INDEX_CLEANUP FALSE).
- dd6959798885 12.0 cited