Re: Two-phase commit

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Two-phase commit
Дата
Msg-id Pine.OSF.4.61.0410071353220.432862@kosh.hut.fi
обсуждение исходный текст
Ответ на Re: Two-phase commit  ("Zeugswetter Andreas DAZ SD" <ZeugswetterA@spardat.at>)
Список pgsql-hackers
On Thu, 7 Oct 2004, Zeugswetter Andreas DAZ SD wrote:

>> Note that this is only really necessary because of Heikki's choice to
>> make the API work in terms of a user-assigned GID.
>
> This was not an arbitrary choice, but is required by most/all TX managers :-(
> I agree that it would be cleaner for the tx manager to keep such a map.
> Maybe the idea was for the gid's to be human readable since human intervention
> is rarely but still required with 2PC, especially in the case where the tx manager
> is unavailable/unrecoverable.

Actually, I think the reason is the following scenario:

1. TM tells DB to prepare for commit
2. DB connection dies after sending the message, but before the TM gets a 
reply.
3. The TM now has no way to know if the transaction got prepared or not.

With a TM assigned transaction id, it works like this:

1. TM tells DB to prepare for commit with transaction id 1234
2. DB connection dies after sending the message, but before the TM gets a 
reply.
3. TM reconnects, and asks the DB if the transaction 1234 is prepared or 
not.

- Heikki


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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Required permissions for data directory
Следующее
От: Marcos A Vaz Salles
Дата:
Сообщение: Hypothetical Indexes