Re: SSI atomic commit

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: SSI atomic commit
Дата
Msg-id 4E131329020000250003EFE3@gw.wicourts.gov
обсуждение исходный текст
Ответ на Re: SSI atomic commit  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: SSI atomic commit
Список pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
>> Hmm, I think it would be simpler to decide that instead of 
>> SerializableXactHashLock, you must hold ProcArrayLock to access 
>> LastSxactCommitSeqNo, and move the assignment of commitSeqNo to 
>> ProcArrayTransaction(). It's probably easiest to move 
>> LastSxactCommitSeqno to ShmemVariableCache too. There's a few
>> places that would then need to acquire ProcArrayLock to read 
>> LastSxactCommitSeqno, but I feel it might still be much simpler
>> that way.
> 
> Yeah ... this patch creats the need to hold both
> SerializableXactHashLock and ProcArrayLock during transaction
> commit, which is a bit scary from a deadlock-risk perspective,
If I remember correctly, we already do some calls to functions which
acquire ProcArrayLock while holding SerializableXactHashLock, in
order to acquire a snapshot with the right timing.  Regardless of
what we do on transaction completion, we either need to document
that in the code comments, or do some major surgery at the last
minute, which is always scary.
> and not pleasant from the concurrency standpoint either.
On the bright side, both locks are not held at the same time unless
the transaction isolation level is serializable.
> It'd be better to push some functionality into the procarray code.
That's easily done if we don't mind taking out a ProcArrayLock
during completion of a transaction which has no XID, if only long
enough to increment a uint64 in shared memory, and then stash the
value -- somewhere -- so that SSI code can find and use it.  We
thought it was best to avoid that so there wasn't any impact on
non-serializable transactions.
-Kevin


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Bug in SQL/MED?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Bug in SQL/MED?