[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