Re: advancing snapshot's xmin
Heikki Linnakangas <heikki@enterprisedb.com>
From: Heikki Linnakangas <heikki@enterprisedb.com>
To: Alvaro Herrera <alvherre@commandprompt.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Gregory Stark <stark@enterprisedb.com>, Neil Conway <neilc@samurai.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2008-03-28T15:16:08Z
Lists: pgsql-hackers
Alvaro Herrera wrote: > Tom Lane wrote: >> Alvaro Herrera <alvherre@commandprompt.com> writes: >>> As far as I can see, for the purposes of VACUUM we can remove any tuple >>> that was deleted after the old transaction's Xid but before that >>> transaction's Xmin (i.e. all of its live snapshots). This means we get >>> to ignore Xid in GetOldestXmin and in the TransactionXmin calculations >>> in GetSnapshotData. It would not surprise me, however, to find out that >>> I am overlooking something and this is incorrect. >> This seems entirely off-base to me. In particular, if a transaction >> has an XID then its XMIN will never be greater than that, so I don't >> even see how you figure the case will arise. > > My point exactly -- can we let the Xmin go past its Xid? You imply we > can't, but why? Everything < xmin is considered to be not running anymore. Other transactions would consider the still-alive transaction as aborted, and start setting hint bits etc. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com