On 2020/10/01 10:50, tsunakawa.ta...@fujitsu.com wrote:
From: Kyotaro Horiguchi <horikyota....@gmail.com>
Another reason that I mildly want to object to subdivided functions is
I was annoyed that a stats view makes many individual calls to
functions that internally share the same statistics entry. That
behavior required me to provide an entry-caching feature to my
shared-memory statistics patch.
+1
The views for troubleshooting performance problems should be as light as
possible. IIRC, we saw frequently searching pg_stat_replication consume
unexpectedly high CPU power, because it calls pg_stat_get_activity(null) to get
all sessions and join them with the walsenders. At that time, we had hundreds
of client sessions. We expected pg_stat_replication to be very lightweight
because it provides information about a few walsenders.
I think that we can improve that, for example, by storing backend id
into WalSndCtl and making pg_stat_get_wal_senders() directly
get the walsender's LocalPgBackendStatus with the backend id,
rather than joining pg_stat_get_activity() and pg_stat_get_wal_senders().
Regards,
--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION