Re: Buffer access rules, and a probable bug

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Buffer access rules, and a probable bug
Дата
Msg-id 25703.994194706@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Buffer access rules, and a probable bug  (ncm@zembu.com (Nathan Myers))
Ответы Re: Buffer access rules, and a probable bug  (ncm@zembu.com (Nathan Myers))
Список pgsql-hackers
ncm@zembu.com (Nathan Myers) writes:
> On Mon, Jul 02, 2001 at 09:40:25PM -0400, Tom Lane wrote:
>> 4. It is considered OK to update tuple commit status bits (ie, OR the
>> values HEAP_XMIN_COMMITTED, HEAP_XMIN_INVALID, HEAP_XMAX_COMMITTED, or
>> HEAP_XMAX_INVALID into t_infomask) while holding only a shared lock and
>> pin on a buffer.  This is OK because another backend looking at the tuple
>> at about the same time would OR the same bits into the field, so there
>> is little or no risk of conflicting update; what's more, if there did
>> manage to be a conflict it would merely mean that one bit-update would
>> be lost and need to be done again later.

> Without looking at the code, this seems mad.  Are you sure?

Yes.  Those status bits aren't ground truth, only hints.  They cache the
results of looking up transaction status in pg_log; if they get dropped,
the only consequence is the next visitor to the tuple has to do the
lookup over again.

Changing any other bits in t_infomask requires exclusive lock, however.
        regards, tom lane


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

Предыдущее
От: "Dmitry G. Mastrukov"
Дата:
Сообщение: Re: Re: New data type: uniqueidentifier
Следующее
От: Tom Lane
Дата:
Сообщение: Re: funny (cache (?)) bug in postgres (7.x tested)