SSI implementation question

Поиск
Список
Период
Сортировка
От Tom Lane
Тема SSI implementation question
Дата
Msg-id 18430.1319043418@sss.pgh.pa.us
обсуждение исходный текст
Ответы Re: SSI implementation question  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Re: SSI implementation question  (Dan Ports <drkp@csail.mit.edu>)
Список pgsql-hackers
Is it really necessary for GetSerializableTransactionSnapshotInt to
acquire an empty SERIALIZABLEXACT before it acquires a snapshot?
If so, why?  The proposed synchronized-snapshots feature will mean
that the allegedly-new snapshot actually was taken some time before,
so it seems to me that either this is not necessary or we cannot use
a synchronized snapshot in a serializable xact.

In the same vein, why is it necessary to be holding
SerializableXactHashLock (exclusively, yet) while acquiring the
snapshot?  That seems rather bad from a concurrency standpoint, and
again it's going to be pretty meaningless if we're just installing a
pre-existing snapshot.

The reason these things came to mind is that I want to refactor the code
so that the SSI-specific work in GetSerializableTransactionSnapshotInt
is done by a function that is handed an already-taken snapshot, because
I cannot stomach what Joachim did to the APIs of GetSnapshotData and
allied functions.  But refactor or no refactor, it seems like installing
a pre-existing snapshot may be breaking some assumptions here.
        regards, tom lane


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

Предыдущее
От: Greg Jaskiewicz
Дата:
Сообщение: Re: Bug in walsender when calling out to do_pg_stop_backup (and others?)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: synchronized snapshots