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 по дате отправления: