Re: Patch: show xid and xmin in pg_stat_activity and pg_stat_replication

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Christian Kruse <christian(at)2ndquadrant(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
Subject: Re: Patch: show xid and xmin in pg_stat_activity and pg_stat_replication
Date: 2014-02-15 11:21:14
Message-ID: 20140215112114.GC20973@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2014-02-14 23:03:43 -0500, Robert Haas wrote:
> On Wed, Feb 12, 2014 at 8:00 AM, Christian Kruse
> <christian(at)2ndquadrant(dot)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 [functions]
> 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.

Hm maybe, seems to be as advantageous as not. Less lines changed, but a
essentially duplicate function present.

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

Agreed.

Greetings,

Andres Freund

--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-02-15 11:45:30 Re: Recovery inconsistencies, standby much larger than primary
Previous Message Andres Freund 2014-02-15 11:11:03 Re: Memory ordering issue in LWLockRelease, WakeupWaiters, WALInsertSlotRelease