[Planetlab-devel] Re: [PL #17324] wildcards in slices

Thierry Parmentelat thierry.parmentelat at sophia.inria.fr
Tue Nov 14 17:32:01 EST 2006


Mark Huang wrote:
> Thierry Parmentelat wrote:
>> up to you, but db hack or not, somehow a peer calling GetSlices() has 
>> to be able to tell that the two returned slices in question are 
>> special. Maybe the fact that the returned node_ids is the empty list 
>> is enough, in fact. Let's just be aware of the various dependencies.
>
> Again, I don't see that a peer will ever call GetSlices(). A peer will 
> always call GetSlivers(its_nodes), and GetSlivers() will know not to 
> return system slices to peers.
I am not following you here. In the first place when we decided that a 
node manager would only connect its own plc, among other reasons the 
most compelling one was about policies. I really wonder how you can 
implement any kind of policy when all you get is the GetSlivers output. 
You'd have to rescan all this to figure which slice gets on which nodes, 
which is basically what GetSlices would have driven you to. Not to 
mention that there's nothing in the db right now to cache slivers - I 
mean, no Slivers model at least. And that the cross-peer traffic is 
gonna be terribly verbose; how many times are you gonna send the codeen 
description over the wire in a single Refresh?
Sorry, but I cant seem to buy this idea. Or, more likely, I must have 
missed something.
>
>> Well, GetSlivers essentially performs a cartesian product of nodes 
>> and slices; so once you've cached nodes and slices - which is what 
>> RefreshPeer is about right now - you're about done; I've never used 
>> GetSlivers yet but if it's working on an unfederated plc, I dont 
>> expect to have to change anything to it, in much the same way as 
>> AddSliceToNodes is essentially intact. At least, that was my 
>> understanding.
>
> The idea was that GetSlivers() would be used by both the Node Manager 
> and federated peers, to get slice information. I assumed that 
> RefreshPeer() was a function that plc1 called on itself after calling 
> plc2.GetNodes() and plc2.GetSlivers().
right now RefreshPeer basically invokes GetNodes and updates the local 
cache, and then roughly the same for slices - though to come back to the 
triggering discussion we had, we might end up with 2 separate operations 
for attaching them to different triggers.

let me know what you think



More information about the Devel mailing list