Re: New strategies for freezing, advancing relfrozenxid early
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Jeff Davis <pgsql@j-davis.com>,
Matthias van de Meent <boekewurm+postgres@gmail.com>, John Naylor <john.naylor@enterprisedb.com>,
Andres Freund <andres@anarazel.de>, Justin Pryzby <pryzby@telsasoft.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-01-16T05:12:56Z
Lists: pgsql-hackers
On Mon, Jan 9, 2023 at 7:16 AM Peter Geoghegan <pg@bowt.ie> wrote: > > On Tue, Jan 3, 2023 at 12:30 PM Peter Geoghegan <pg@bowt.ie> wrote: > > Attached is v14. > > This has stopped applying due to conflicts with nearby work on VACUUM > from Tom. So I attached a new revision, v15, just to make CFTester > green again. > > I didn't have time to incorporate any of the feedback from Matthias > just yet. That will have to wait until v16. > I have looked into the patch set, I think 0001 looks good to me about 0002 I have a few questions, 0003 I haven't yet looked at 1. + /* + * Finally, set tableagefrac for VACUUM. This can come from either XID or + * XMID table age (whichever is greater currently). + */ + XIDFrac = (double) (nextXID - cutoffs->relfrozenxid) / + ((double) freeze_table_age + 0.5); I think '(nextXID - cutoffs->relfrozenxid) / freeze_table_age' should be the actual fraction right? What is the point of adding 0.5 to the divisor? If there is a logical reason, maybe we can explain in the comments. 2. While looking into the logic of 'lazy_scan_strategy', I think the idea looks very good but the only thing is that we have kept eager freeze and eager scan completely independent. Don't you think that if a table is chosen for an eager scan then we should force the eager freezing as well? -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
Commits
-
Revert "Add eager and lazy freezing strategies to VACUUM."
- 6c6b49726644 16.0 landed
-
Add eager and lazy freezing strategies to VACUUM.
- 4d4179926139 16.0 landed
-
Refine the definition of page-level freezing.
- b37a08323964 16.0 landed
-
Avoid special XID snapshotConflictHorizon values.
- 6daeeb1f9196 16.0 cited
-
Add page-level freezing to VACUUM.
- 1de58df4fec7 16.0 landed
-
Remove overzealous MultiXact freeze assertion.
- 63c844a0a5d7 16.0 landed
-
Refactor how VACUUM passes around its XID cutoffs.
- 4ce3afb82ecf 16.0 landed
-
Deduplicate freeze plans in freeze WAL records.
- 9e5405993c1e 16.0 cited
-
Set relfrozenxid to oldest extant XID seen by VACUUM.
- 0b018fabaaba 15.0 cited
-
Only skip pages marked as clean in the visibility map, if the last 32
- bf136cf6e376 8.4.0 cited
-
Add vacuum_freeze_table_age GUC option, to control when VACUUM should
- 6587818542e7 8.4.0 cited