Re: 2-phase commit
От | Zeugswetter Andreas SB SD |
---|---|
Тема | Re: 2-phase commit |
Дата | |
Msg-id | 46C15C39FEB2C44BA555E356FBCD6FA4962020@m0114.s-mxs.net обсуждение исходный текст |
Ответ на | 2-phase commit (Andrew Sullivan <andrew@libertyrms.info>) |
Ответы |
Re: 2-phase commit
|
Список | pgsql-hackers |
> > > > The simplest senario(though there could be varations) is > > > > > > > [At participant(master)'s side] > > > > Because the commit operations is done, does nothing. > > > > > > > [At coordinator(slave)' side] > > > > 1) After a while > > > > 2) re-establish the communication path between the > > > > partcipant(master)'s TM. > > > > 3) resend the "commit requeset" to the participant's TM. > > > > 1)2)3) would be repeated until the coordinator receives > > > > the "commit ok" message from the partcipant. > > > > > > [ scratches head ] I think you are using the terms "master" and "slave" > > > oppositely than I would. > > > > Oops my mistake, sorry. > > But is it 2-phase commit protocol in the first place ? > > That is, in your exmaple below > > Example: > > Master Slave > ------ ----- > commit ready--> This is the commit for phase 1. This commit is allowed to return all sorts of errors, like violated deferred checks, out of diskspace, ... > <--OK > commit done->XX This is commit for phase 2, the slave *must* answer with "success" in all but hardware failure cases. (Note that instead the master could instead send rollback, e.g. because some other slave aborted) > is the "commit done" message needed ? So, yes this is needed. Andreas
В списке pgsql-hackers по дате отправления: