From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | James Coleman <jtc331(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Proposal: Expose oldest xmin as SQL function for monitoring |
Date: | 2020-04-01 21:45:02 |
Message-ID: | 14378.1585777502@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
James Coleman <jtc331(at)gmail(dot)com> writes:
> To my knowledge the current oldest xmin (GetOldestXmin() if I'm not
> mistaken) isn't exposed directly in any view or function by Postgres.
You could do something like
select max(age(backend_xmin)) from pg_stat_activity;
though I'm not sure whether that accounts for absolutely every process.
> Am I missing anything in the above description? And if not, would
> there be any reason why we would want to avoid exposing that
> information? And if not, then would exposing it as a function be
> acceptable?
The fact that I had to use max(age(...)) in that sample query
hints at one reason: it's really hard to do arithmetic correctly
on raw XIDs. Dealing with wraparound is a problem, and knowing
what's past or future is even harder. What use-case do you
foresee exactly?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Nino Floris | 2020-04-01 21:52:59 | Re: [PATCH] ltree, lquery, and ltxtquery binary protocol support |
Previous Message | Tomas Vondra | 2020-04-01 21:42:15 | Re: [PATCH] Incremental sort (was: PoC: Partial sort) |