From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp> |
Cc: | "'Bruce Momjian'" <pgman(at)candle(dot)pha(dot)pa(dot)us>, "'Zeugswetter Andreas SB SD'" <ZeugswetterA(at)spardat(dot)at>, "'Andrew Sullivan'" <andrew(at)libertyrms(dot)info>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: 2-phase commit |
Date: | 2003-09-29 04:23:07 |
Message-ID: | 16664.1064809387@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp> writes:
> 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. But in any case, this is not an answer to the
concern I had. You're assuming that the "coordinator(slave)" side is
willing to resend a request indefinitely, and also that the
"participant(master)" side is willing to retain per-transaction commit
state indefinitely so that it can correctly answer belated questions
from the other side. What I was complaining about was that I don't
think either side can afford to remember per-transaction state
indefinitely. 2PC in the abstract is a useless academic abstraction ---
where the rubber meets the road is defining how you cope with failures
in the commit protocol.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-09-29 04:28:47 | Re: ADD FOREIGN KEY (was Re: [GENERAL] 7.4Beta) |
Previous Message | Bruce Momjian | 2003-09-29 04:02:48 | Re: ADD FOREIGN KEY (was Re: [GENERAL] 7.4Beta) |