
On Aug 27, Dominic Battre modulated:
I tried to digest that and this is what I came up with:
https://cit-server.cit.tu-berlin.de/trac/negmgr/wiki/TwoPhaseCommit
(I used my wiki because it supports tables)
It would be great, if you could have a brief look at it and tell me whether this is what you had in mind.
Well, your example looks like a solution with a new invitation message. The basic 2PC/advance reservation idiom, as already illustrated in the advance reservatione example in the spec, would be: Consumer Provider (as Initiator) (as Responder) a. discovery <--- template --- b. prepare --- createAgreement(SLA1) ---> <--- accept --- (or reject to abort preparation) c. commit --- createAgreement(SLA2) ---> <--- accept --- (reject would be a serious failure) The discovery phase (a) is not emphasized in WS-Agreement because it was assumed to be an area where OGSA would provide other solutions. The basic WSRF resource property model was considered sufficient to capture the template model and allow basic query, but one hopes there will be search services where a consumer could locate providers with relevant templates. It might also include other non-obligating queries regarding resource availability. The SLA1 in phase (b) is the advance reservation and captures the resource requirements that are needed for the co-allocation. Due to the limited negotiation model in WS-Agreement, the co-allocation solution must already be concretely proposed here, e.g. the time of resource availability is part of the SLA1 terms, since the consumer/initiator has to make consistent advance reservation proposals to all providers involved in the transaction. The only answer available in the protocol is "yes/no" as to whether they can prepare as requested in SLA1. (If you are looking for a proposal/counter-offer pattern, that is an entirely different issue than this 2PC synchronization. That, indeed, requires a new negotiation protocol, though it is possible to define was as an extension or complement to WS-Agreement.) If preparation fails, the initiator can cancel/destroy any existing reservations to abort the 2PC transaction. Therefore, as I mentioned previously, a cost model with cheap advance reservation+cancellation is required to allow this idiom. One would expect that the cost of reservation goes up the longer it is held, e.g. to discourage aggressive use of 2PC resulting in live-lock of resources. The SLA2 in phase (c) is the actual "job" or whatever was intended to be co-scheduled. It makes claims on the appropriate SLA1 which should mean that the provider is obligated to accept this claim, since he already promised the resources. Thus, rejection at this time is unexpected and indicates a violation, so the 2PC semantics would fall apart here. (Note, this is no different than any other way that a non-trusted/partially-trusted party could choose to violate 2PC protocols.) karl -- Karl Czajkowski Software Architect Univa Corporation 1001 Warrenville Road, Suite 550 Lisle, IL 60532 karlcz@univa.com www.univa.com ________________________________________________________________ www.univa.com. The Leaders of Open Source Cluster and Grid Software