On Wed, Feb 12, 2014 at 8:00 AM, Christian Kruse <christ...@2ndquadrant.com> wrote: > On Wednesday 12 February 2014 11:14:56 Andres Freund wrote: >> But they do take up shared memory without really needing to. I >> personally don't find that too bad, it's not much memory. If we want to >> avoid it we could have a LocalPgBackendStatus that includes the normal >> PgBackendStatus. Since pgstat_read_current_status() copies all the data >> locally, that'd be a sensible point to fill it. While that will cause a >> bit of churn, I'd guess we can use the infrastructure in the not too far >> away future for other parts. > > That's a good idea. Attached you will find a patch implementing it > that way; is this how you pictured it? > > Although I'm not sure if this shouldn't be done in two patches, one > for the changes needed for LocalPgBackendStatus and one for the > xid/xmin changes.
Well, this version of the patch reveals a mighty interesting point: a lot of the people who are calling pgstat_fetch_stat_beentry() don't need this additional information and might prefer not to pay the cost of fetching it. None of pg_stat_get_backend_pid, pg_stat_get_backend_dbid, pg_stat_get_backend_userid, pg_stat_get_backend_activity, pg_stat_get_backend_activity, pg_stat_get_backend_waiting, pg_stat_get_backend_activity_start, pg_stat_get_backend_xact_start, pg_stat_get_backend_start, pg_stat_get_backend_client_addr, pg_stat_get_backend_client_port, pg_stat_get_backend_client_port, and pg_stat_get_db_numbackends actually need this new information; it's only ever used in one place. So it seems like it might be wise to have pgstat_fetch_stat_beentry continue to return the PgBackendStatus * and add a new function pgstat_fetch_stat_local_beentry to fetch the LocalPgBackendStatus *; then most of these call sites wouldn't need to change. It would still be the case that pgstat_read_current_status() pays the price of fetching this information even if pg_stat_get_activity is never called. But since that's probably by far the most commonly-used API for this information, that's probably OK. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers