[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: RE: [bt-spec] BTP Issue 52 : Forms of PREPARE
Pyounguk,
PREPARE_INFERIORS is only ever sent to a top-most
composer or (if the suggestion is accepted) coordinator - that is
from Terminator to Decider. It is never used on the Superior:Inferior
links.
Atoms
and Cohesions are basically the same in their behaviour - both when they are
top-most - and so Deciders, driven by the application acting as Terminator, and
even more so in the sub-co* form, when they are inferior to some other superior.
The change proposed here would make them even more like. Considering the
sequence on the terminator:decider relation
active
phase: some Inferiors may spontaneously send PREPARED (this in fact will be
understood and expected by the application, and perhaps even demanded via the
application protocol, but to BTP it is spontaneous)
terminator may issue PREPARE_INFERIORS for some subset
of the Inferiors - question is whether this is allowed for coordinators as
well as composers
terminator may issue REQUEST_INFERIOR_STATUSES -
regardless of type
terminator may issue CANCEL_INFERIORS for some subset
*but only to a composer*
those can be issued repeatedly, in any order.
eventually, terminator issues one
of
CANCEL_TRANSACTION - cancels all inferiors and ends the
transaction
CONFIRM_TRANSACTION
if this is a cohesion composer, the
inferiors-list parameter may be present, and the confirm-set is only the
inferiors in it
if the inferiors list is absent (which it
must be for an atom coordinator, and can be for a cohesion composer) the
confirm-set is all un-resigned inferiors.
CANCEL is sent to all inferiors not in the confirm-set
(only applies for cohesions)
if for any inferiors in the confirm-set,
neither PREPARED or CANCELLED has been
received and PREPARE has not been sent to it, PREPARE is now
sent
if (eventually) for all inferiors in the
confirm-set set, PREPARED has been received, the list of inferiors is
persisted. if this works, CONFIRM is sent to the inferiors of the
confirm-set.
if any infeiror in the confirm-set sends
CANCELLED, all the confirm-set is
cancelled.
Important thing is the last three rules are identical -
once the confirm-set is decided, the probability wave-function of the cohesion
collapses, and it behaves atomically.
That works
out that, if PREPARE_INFERIORS and CANCEL_INFERIORS aren't used, and there is no
spontaneous prepare, the CONFIRM_TRANSACTION triggers all of the prepare wave,
for atoms and cohesions.
So, yes, "the termination protocol is triggered by the
applicaiton but carried out by the decider, which will pass the final outcome to
the terminator", but that's true for both. (and the application may start
the PREPARE and PREPARED early, by various means)
Peter
-----Original Message-----
From: Cho, Pyounguk [mailto:PCho@iona.com] Sent: 25 January 2002 19:36 To: 'Peter Furniss'; bt-spec@lists.oasis-open.org Subject: RE: [bt-spec] BTP Issue 52 : Forms of PREPARE
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC