Re: [PATCHES] Static snapshot data
| От | Tom Lane |
|---|---|
| Тема | Re: [PATCHES] Static snapshot data |
| Дата | |
| Msg-id | 5958.1052801496@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Re: [PATCHES] Static snapshot data (Alvaro Herrera <alvherre@dcc.uchile.cl>) |
| Список | pgsql-hackers |
Alvaro Herrera <alvherre@dcc.uchile.cl> writes:
> I don't think it makes sense to change the isolation level for a
> non-toplevel transaction. That is, if the topmost transaction is
> ISOLATION LEVEL SERIALIZABLE, all its child transactions will be. And
> if it's not, then there's no way to make its child transactions be so.
> Is there an objection to this idea?
I have a feeling that there might be some value in running a
SERIALIZABLE subtransaction inside a READ COMMITTED parent. Too tired
to come up with an example right now, though. I agree that the other
way 'round (READ COMMITTED inside SERIALIZABLE) would be a bad idea,
since it negates the fundamental premise of SERIALIZABLE.
> With "constant isolation" in mind, it's clear that the
> SerializableSnapshot is going to be constant for all transactions.
But ... your definition of the snapshot includes the list of successful
previous subtransactions of the parent. How's that static?
> And about QuerySnapshots: given some running transaction with a given
> QuerySnapshot, a newly created child transaction's first QuerySnapshot
> can be calculated easily as:
> - Xmin, Xmax and xip are the same as in the current implementation
> (i.e. the values from GetSnapshotData)
Not entirely sure about that in READ COMMITTED mode. Should a child
xact be able to see commits from other backends that happened before it
started, but after its parent started? I can think of arguments on both
sides ...
regards, tom lane
В списке pgsql-hackers по дате отправления: