Re: reindex creates predicate lock on index root

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: reindex creates predicate lock on index root
Дата
Msg-id 4DEF4A6B020000250003E2F1@gw.wicourts.gov
обсуждение исходный текст
Ответ на Re: reindex creates predicate lock on index root  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: reindex creates predicate lock on index root  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: reindex creates predicate lock on index root  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Список pgsql-hackers
Robert Haas <robertmhaas@gmail.com> wrote:

> I'm wondering if this shouldn't be linked to whether the scan is
> using an MVCC snapshot, rather than inserting exceptions for
> specific operations.

Yeah, that was raised before somewhere and I spaced it.  Grabbing
predicate locks for non-MVCC snapshots is nonsense, and the fix is a
one-line addition to the SkipSerialization macro defined and used in
predicate.c.  Patch attached.

I agree with your other post that changes which are in the nature of
improving performance (which for SSI includes changes which reduce
the number of false positive serialization failures for serializable
transactions) should be viewed very cautiously in terms of 9.1
inclusion.  We're already at a point where a DBT-2 benchmark only
shows a 2% hit for SSI overhead, including transaction restarts for
serialization failures.  I'd love to get that down to 1% or lower,
but I don't want to create any risk of introducing bugs in 9.1 at
this point.  I think this one-liner might be worth considering,
since it is very low risk and fixes an undesirable behavior which
some (Tom, at least, it would appear) would have no trouble
categorizing as a bug.

The attached patch has not yet been tested, but I'll test it today
along with the latest committed code.

-Kevin


Вложения

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

Предыдущее
От: "Kevin Grittner"
Дата:
Сообщение: Re: SIREAD lock versus ACCESS EXCLUSIVE lock
Следующее
От: Merlin Moncure
Дата:
Сообщение: Re: Error in PQsetvalue