Subject |
Re: [GLIF controlplane] RE: Network Control Architecture |
From |
Bert Andree <handree@xxxxxxxxxxxxxx> |
Date |
Thu, 19 Apr 2007 13:34:19 +0200 |
Hi Gigi,
What exactly dou you mean with one RB per request.
Suppose there are two independant RB's,RB-A and RB-B and two resources,
RS-1 and RS-2.
Suppose that there is a request to RB-A to book both resources and a
request to RB-B to do the same. Now, if the pre-reservation of resources
is not an atomic action, two different strategies may introduce specific
problems.
Stategy 1: an availibility request does not reserve the resource:
RB-A asks for RS-1 (available)
RB-B asks for RS-2 (available)
RB-A asks for RS-2 (available)
RB-B asks for RS-1 (available)
RB-A confirms RS-1 (success)
RB-B confirms RS-2 (success)
RB-A confirms RS-2 (fail)
RB-B confirms RS-1 (fail)
The obvious solution would be to free all resources and try again. In
complex systems there is a fair chance that both resources can never be
booked (deadlock).
Stategy 2: an availibility request reserves the resource:
RB-A asks for RS-1 (available)
RB-B asks for RS-2 (available)
RB-A asks for RS-2 (not available)
RB-B asks for RS-1 (not available)
RB-A and RB-B free all resources and try again. In complex systems there
is a fair chance that both resources can never be booked (deadlock).
The only way to prevent is, is to have some queing of requests and even
then "individual starvation", e.g. RB-A can never book any resources is
possible in complex systems.
Best regards,
Bert
Gigi Karmous-Edwards wrote:
Hi Admela,
I agree, there are two phases, 1) check availability from xRM, and 2) If
all xRMs give an ack. then go th second phase of commit, 2') if one or
more xRM gives a nack, then do not proceed to the phase two commit. In
the architecture sent out, the responsibility of coordinating and
administering the two phases is in ONE RB per request. Each xRM will
rely on the RB to tell them whether to proceed to a commit or not. If
they get a commit from an RB, it then becomes the xRM's responsibility
to make the reservation and allocation in the actual resources. I think
if for example RB-A talks to an xRM in domain "B", then it may be the
responsibility of the xRM-B to tell its own RB-B of its interaction
with RB-A. Is this in line with your thoughts?
Gigi