> 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?

--
Sami Imseih
Amazon Web Services (AWS)


Reply via email to