[Planetlab-devel] NM semantics
Stephen Soltesz
soltesz at CS.Princeton.EDU
Mon Dec 3 14:49:29 EST 2007
The following is behavior that currently exists in NM, whether by design or not.
I would like to bring this to everyone's attention, because we may want to
improve the interface or design before it gets accepted by convention. And, I
would like to solicit any feedback on the proposed changes below.
Currently, NM exports (among others) the following three calls:
* Ticket(ticket)
* Create(slice_name)
* Destroy(slice_name)
The semantics of Create and Destroy are what you'd expect. The semantics of
Ticket() are that it takes a ticket, as generated by GetSliceTicket() from the
PLCAPI, and both stores this ticket for future operations, as well as calling
Create() on the slice that it represents.
I see two problems with this:
1. NM is maintaining state that is already maintained by the controller.
2. Create() shouldn't be called automatically by Ticket().
In response to 1) I don't immediately see why Ticket() is a necessary call at
all. Why not have Create take two arguments, both the ticket and the slice name
to be created, or only the ticket if it contains all the relevant information?
Why is NM keeping a record of data that is returned by the next GetSlivers call
anyway?
In response to 2) this just feels right. Why have different operations combined
into a single call?
Also, does anyone have any strong feelings about Create() and Destroy() being
synchronous wrt the operations taken by the call? As it is now, Create()
returns before a user can log into the slice. Afaik, the time is unbounded
between the return and when the user can log in.
Thank you,
Stephen.
More information about the Devel
mailing list