public inbox for [email protected]
help / color / mirror / Atom feedFrom: senor <[email protected]>
To: [email protected] <[email protected]>
Subject: txid_current vs xact_commit stats
Date: Wed, 9 Oct 2024 04:22:41 +0000
Message-ID: <SJ0P221MB06894F3D6D38DE5C61E82B30F77F2@SJ0P221MB0689.NAMP221.PROD.OUTLOOK.COM> (raw)
HI All;
I was under the impression that all transactions must end with a commit or a rollback but watching stats doesn't support this. Web searches tend to return info on what a transaction is or the ratio of commits to rollbacks. I found nothing contradicting what I think I know.
I've sampled pg_stat_database.xact_commit, pg_stat_database.xact_rollback and txid_current() at intervals on a few independent clusters and see that commits increase anywhere from 50% to 300% of the rate of transaction increase. Rollback remains very near zero for all clusters. Each cluster tends to stay consistently within a range (i.e. 120-130% or 50-70%).
I've seen strange issues with the stats collector missing updates and causing problems with autovacuum but that wouldn't explain more commits than transactions. All clusters receive many inserts (~10-100) in single transactions but AFAIK this still counts as a single commit. Many other tables are created while processing the inserted data and much of that is done within transaction blocks. I'm not aware of anything very sophisticated in the application handling this but I could be wrong.
I'm probably missing something fundamental. I know what I know but I'm not a DBA.
PG version 11 & 12 on Linux
Any hints and references appreciated.
Thanks,
Senor
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: txid_current vs xact_commit stats
In-Reply-To: <SJ0P221MB06894F3D6D38DE5C61E82B30F77F2@SJ0P221MB0689.NAMP221.PROD.OUTLOOK.COM>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox