Re: advancing snapshot's xmin
От | Alvaro Herrera |
---|---|
Тема | Re: advancing snapshot's xmin |
Дата | |
Msg-id | 20080328152503.GQ7464@alvh.no-ip.org обсуждение исходный текст |
Ответ на | Re: advancing snapshot's xmin (Heikki Linnakangas <heikki@enterprisedb.com>) |
Ответы |
Re: advancing snapshot's xmin
|
Список | pgsql-hackers |
Heikki Linnakangas wrote: > 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. Okay. So let's say we invent another TransactionId counter -- we keep Xmin for the current purposes, and the other counter keeps track of snapshots ignoring Xid. This new counter could be used by VACUUM to trim dead tuples. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
В списке pgsql-hackers по дате отправления: