[Planetlab-devel] NM semantics
Faiyaz Ahmed
faiyaza at CS.Princeton.EDU
Wed Dec 5 12:46:05 EST 2007
Hi Stephen,
I can remove the Create() from the Ticket() call. It really is unneeded
to have both encapsulated in 1 call and the ability to have a slice
ready but not started may appeal to some users.
>Why is NM keeping a record of data that is returned by the next
GetSlivers?? call anyway?
NM cache's getslivers data if connectivity to PLC is lost and operations
on slivers needs to continue (ie. expiration, bandwidth limiting, etc).
When connectivity exists, GetSlivers?() is called periodically by NM to
the PLC API, and the NM database (cache) is updated with the latest
slice information.
During the time between polls, a user may dynamically create or destroy
a sliver. For this operation to complete, the same information presented
by GetSlivers? needs to be present in NM's database, so a natural work
around is to encapsulate the sliver information in the signed ticket
itself. The next time NM calls GetSlivers?, and attributes for the
sliver have changed, the updated attributes are used in place of
attributes presented by the ticket.
Faiyaz
Stephen Soltesz wrote:
> 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.
>
> _______________________________________________
> Devel mailing list
> Devel at lists.planet-lab.org
> https://lists.planet-lab.org/mailman/listinfo/devel
More information about the Devel
mailing list