Re: advancing snapshot's xmin

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: advancing snapshot's xmin
Дата
Msg-id 47ED1982.1030807@enterprisedb.com
обсуждение исходный текст
Ответ на Re: advancing snapshot's xmin  (Alvaro Herrera <alvherre@commandprompt.com>)
Список pgsql-hackers
Alvaro Herrera wrote:
> 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.

Hmm. So if we call that counter VacuumXmin for now, you could remove 
deleted rows with xmax < VacuumXmin, as long as that xmax is not in the 
set of running transactions? I guess that would work.

In general: VACUUM can remove any tuple that's not visible to any 
snapshot in the system. We don't want to keep all snapshots in shared 
memory, so we use some conservative approximation of that.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Brendan Jurd"
Дата:
Сообщение: Re: [PATCHES] Text <-> C string
Следующее
От: Chris Browne
Дата:
Сообщение: Re: Transaction Snapshot Cloning