Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Gregory Stark <stark(at)enterprisedb(dot)com>,
Heikki Linnakangas <heikki(at)enterprisedb(dot)com>,
Neil Conway <neilc(at)samurai(dot)com>,
Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
On Fri, 2008-03-28 at 10:35 -0300, Alvaro Herrera wrote:
> The problem is that we always consider every transaction's PGPROC->xid
> in calculating MyProc->xmin. So if you have a long running
> transaction, it doesn't matter how far beyond the snapshots are -- the
> value returned by GetOldestXmin will always be at most the old
> transaction's Xid. Even if that transaction cannot see the old rows
> because all of its snapshots are way in the future.
It may not have a TransactionId yet.
So we should have the capability to prevent long running read-only
transactions from causing a build up of dead row versions. But long
running write transactions would still be a problem.
--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com
PostgreSQL UK 2008 Conference: http://www.postgresql.org.uk