[Planetlab-devel] PLC system discussion (in the hall)
Thierry Parmentelat
thierry.parmentelat at sophia.inria.fr
Sat May 17 22:01:39 EDT 2008
hi, catching up ..
Well, from my perspective one of the culprits here is the implicit
assumption that the API should somehow match the implementation. Even
though that has maybe never been formally stated, that's how things
have been so far.
What we've been talking about is more about implementation; the
generic model that we've sketched would allow us to reuse more code,
rather than to have to define a new table and related links for each
new type of node; I hope this to be particularly useful to people who
need to deal with various types of nodes without requiring them to
dive into the details of the DB; similarly this model addresses a lot
of issues that we've been having so far, and that we've had to work
around with more or less ad hoc solutions, in particular based on
nodegroups, that were truly overloaded
this is not to say that all this need be exposed. as Stephen pointed
out, we're going to end up with differents levels of APIs; the way I
would put it is that what he calls the support libraries could well be
the public API to the system; while the GenericNode interface is maybe
more an implementation 'detail' as Larry puts it
coming back to the PCU's, I have the feeling that the API should be
more modular, and that we should be able to split the API into more
autonomous parts; on the one hand, from the GENI abstractions (CM,SM)
it seems clear to me that we should be able to run these two parts as
two totally separate entities, otherwise my feeling is that we're
missing the point. on the other hand, having the default, usual,
'plain' nodetype available seems required, but the other types of
nodes should be more easily merged through something that looks like
plugins.
Finally, the PCU thing is truly an implementation detail; the fact
that we wish to use the same underlying, generic, implementation
mechanisms to bring it to life, does not mean, IMHO, that it should be
part of the API at all. As far as federation goes, we really do not
care about PCUs.
my 2 cents -- thierry
PS1.
Coming back to nodegroups.
To add to the confusion, I'm going to propose that we actually keep
nodegroups, that would be defined as
nodegroup = attribute + value
so that, e.g.,
nodegroup_alpha = { n / n['deployment'] = 'alpha' }
This would be a means to reduce the migration mess, we could e.g. keep
the conf_files thing more or less as-is
The reason why I'd been proposing to kick them off was related to the
way they are defined right now, which is extensively, like in
nodegroup_alpha = { n1, n2, ... }
Think of it as a smart playlist as opposed to the regular playlists,
in itunes
PS2.
continuing the same metaphor, I'd propose that these NodeAttributes
should be called 'tags' instead; this is very similar to the tagging
system in the mp3 format - and to a lesser extent to the web-2.0
notion of tags.
So we'd have SliceAttributes, NodeNetworkSettings, and NodeTags. This
would make it simpler to locate stuff in the code, which was the
reason why I did call NodeNetworkSettings that, and not
NodeNetworkAttributes.
PS3.
also dring this meeting we haven't had time to define the links
mechanism, but I guess everyone understands that this is a requirement
also. What I mean is is a mechanism for modelling the kind of
relationship that a dummynet box has with the nodes under its control.
Or, for handling the relationship between a PCU and its controlled
nodes.
Not too sure what needs to be attached such a link, so a rough would be
Link = node1, node2, linktype, value (linktype being declared like a
sliceattributetype....)
of course the value may in some be cases be more complex than that,
but as a first stage that could fit I guess.
comments / thoughts ?
On May 16, 2008, at 4:22 PM, Larry Peterson wrote:
> I start to worry when I hear "API changes
> will be necessary."
More information about the Devel
mailing list