Re: n_ins_since_vacuum stats for aborted transactions
Sami Imseih <samimseih@gmail.com>
From: Sami Imseih <samimseih@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: "David G. Johnston" <david.g.johnston@gmail.com>,
Mark Dilger <mark.dilger@enterprisedb.com>, Euler Taveira <euler@eulerto.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-04-10T03:42:31Z
Lists: pgsql-hackers
Attachments
- 0001-Clarify-when-aborted-and-committed-rows-are-tracked-.patch (application/octet-stream) patch 0001
> One possible bad behaviour that this could cause is if > autovacuum_vacuum_insert_scale_factor was set lower than > autovacuum_vacuum_scale_factor is that we could end up performing a > vacuum for inserts when all we've got is dead tuples from aborted > inserts. Thanks for pointing this out! > We could fix it but it > would require adding a new field to PgStat_TableCounts to track this > as you can't selectively only update > PgStat_TableCounts.tuples_inserted on commit as the n_tup_ins would > then be wrong. > > If the above is the only misbehaviour this is causing, then I'm > doubting that it's worth expanding PgStat_TableCounts by 8 bytes to > have this work better. I agree, as I mentioned at the top of the thread, rollbacks are not common enough for this to be worth it. But, the code comment as you have it is good enough. > > So, I think public documentation updates to clarify that > > n_tup_upd|del|ins, and n_ins_since_vacuum include > > aborted rows is a good enhancement. I also attached public doc clarification of how aborted ( and committed ) rows are handled for pg_stat_all_tables fields that count row changes I initially thought about adding clarification for every field, but that felt too repetitive. So, I add a Note section after pg_stat_all_tables in the public docs to describe the behavior. It may be better to apply your code comment patch and the public docs patch separately. -- Sami Imseih Amazon Web Services (AWS)
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add code comment explaining ins_since_vacuum and aborted inserts
- 530050d8d285 18.0 landed
-
Trigger autovacuum based on number of INSERTs
- b07642dbcd8d 13.0 cited