Re: Question concerning XTM (eXtensible Transaction Manager API)

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: Question concerning XTM (eXtensible Transaction Manager API)
Дата
Msg-id 20151116195453.GC614468@alvherre.pgsql
обсуждение исходный текст
Ответ на Question concerning XTM (eXtensible Transaction Manager API)  (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>)
Ответы Re: Question concerning XTM (eXtensible Transaction Manager API)
Список pgsql-hackers
Konstantin Knizhnik wrote:

> But you may notice that original TransactionIdSetTreeStatus function is void
> - it is not intended to return anything.
> It is called in RecordTransactionCommit in critical section where it is not
> expected that commit may fail.
> But in case of DTM transaction may be rejected by arbiter. XTM API allows to
> control access to CLOG, so everybody will see that transaction is aborted.
> But we in any case have to somehow notify client about abort of transaction.

I think you'll need to rethink how a transaction commits rather
completely, rather than consider localized tweaks to specific functions.
For one thing, the WAL record about transaction commit has already been
written by XactLogCommitRecord much earlier than calling
TransactionIdCommitTree.  So if you were to crash at that point, it
doesn't matter how much the arbiter has rejected the transaction, WAL
replay would mark it as committed.  Also, what about the replication
origin stuff and the TransactionTreeSetCommitTsData() call?

I think you need to involve the arbiter earlier, so that the commit
process can be aborted earlier than those things.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



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

Предыдущее
От: Bert
Дата:
Сообщение: Re: Parallel Seq Scan
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Parallel Seq Scan