Re: BUG #13660: serializable snapshotting hangs

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: BUG #13660: serializable snapshotting hangs
Дата
Msg-id 1266496986.153956.1444227871967.JavaMail.yahoo@mail.yahoo.com
обсуждение исходный текст
Ответ на Re: BUG #13660: serializable snapshotting hangs  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
On Wednesday, October 7, 2015 9:08 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Kevin Grittner <kgrittn@ymail.com> writes:
>> The Serializable Snapshot Isolation techniques only work on top of
>> MVCC snapshot isolation.  At the time of the SSI patch, catalogs
>> were not accessed according to those rules, so we excluded them
>> from SSI handling -- it just could not have worked in a meaningful
>> way.  (So catalog access is currently identical under REPEATABLE
>> READ and SERIALIZABLE transaction isolation levels.)
>
> Really?  "SELECT * FROM pg_database" will ignore SSI?

Yes.  If that is run in a SERIALIZABLE transaction, the effect will
be the same as if it were run in a REPEATABLE READ transaction --
it will use the transaction snapshot but will not create
SIReadLocks or examine the MVCC state of the rows read to look for
read-write conflicts.

> I agree that the system's own catalog accesses don't pay attention
> to SSI, and probably can't because of concerns about needing to see
> fully up-to-date data.  But that's not my question.  My point is
> that userland snapshots can be used to examine shared catalogs,
> and even update them if you're a superuser.

In such situations a SERIALIZABLE transaction provides no
additional protections against serialization anomalies involving
the catalogs than a REPEATABLE READ transaction.

If we decided to support the distinction you suggest, I'm not sure
how we would distinguish changes made by DDL commands from changes
made by superuser DML to catalog tables when examining the row's
MVCC data during a scan.  I am also skeptical that the addition of
predicate locks (done from inside heap and index AMs) would have a
sensible way to distinguish between the two cases.  Finally, it's
not immediately obvious what the benefit would be of distinguishing
between the two forms of catalog modification.

--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #13660: serializable snapshotting hangs
Следующее
От: Chris Pacejo
Дата:
Сообщение: Re: BUG #13660: serializable snapshotting hangs