Hi,

On Thu, Jan 22, 2026 at 11:23:29AM -0600, Sami Imseih wrote:
> > For example, pgstat_update_dbstats() updates some of them: xact_commit, 
> > xact_rollback,
> > blk_read_time, blk_write_time, session_time, active_time and 
> > idle_in_transaction_time
> > but only at transaction boundaries. Indeed, pgstat_update_dbstats() is only 
> > called
> > during pgstat_report_stat() and not during pgstat_report_anytime_stat().
> >
> > I think that we could:
> >
> > 1. Update the doc as you suggest
> 
> I am thinking the _time related fields are OK to be non-anytime
> fields, since they
> have overhead and also they can be actively monitored from pg_stat_activity
> if someone really needs real time information.
> 
> The other session related counters don't need need special consideration.
> 
> parallel counters are anytime.
> 
> So, the documentation can mention the _time related fields that are flushed
> only at their appropriate times.
> 
> Maybe something general like this:
> 
> "Some statistics are updated while a transaction is in progress.
> Statistics that either do
> not depend on transactions or require transactional consistency are
> updated only
> when the transaction ends. Statistics that require transactional consistency
> include xact_commit, xact_rollback, tup_inserted, tup_updated, and 
> tup_deleted."
> 
> What do you think?

Thanks! 

That sounds good, maybe just change the first sentence to something like:

"
Some statistics are updated while a transaction is in progress (this includes
blks_read, blks_hit, tup_returned and tup_fetched).
"

Thoughts?

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com


Reply via email to