[glue-wg] Issue with several ServiceTypes, "modal" operation

Florido Paganelli florido.paganelli at hep.lu.se
Thu Jul 5 05:43:36 EDT 2012


Hi all,

I would like to raise what I think is an issue with some ServiceTypes we 
decided on the last enumeration call long time ago, and I think this 
list is the correct place as my observation will question the sanity of 
these open enumerations.

So let me briefly set the scenario with an ARC example. An ARC Computing 
Element (or ARC CE) can be configured to support different clustering 
systems, or LRMS, and its corresponding Execution Service has a well 
defined GLUE2 name called org.nordugrid.execution.arex

Now, an ARC CE can be configured to act as a gateway for Desktop Grids, 
by simply using a different LRMS called DGBridge. The CE works exaclty 
the same way as usual, but will only allow jobs designed for Desktop 
Grids, discarding or failing all the others.

On an operational point of view, GOCDB suggested to use a different 
ServiceType for the above configuration, namely dg.ARC-CE.

So what happens now is, the ARC CE Desktop Grid Gateway publishes 
org.nordugrid.execution.arex as ServiceType, and GOCDB calls it  dg.ARC-CE.

I see a consistency problem here. Would be strange to have a GLUE2 
ServiceType in GOCDB that is _not_ published by any Resource out there: 
what happens when a client asks info to GOCDB? it will find a 
ServiceType that doesn't match any of the data published by the resource 
it is pointing to. Weird isn't it?

When I stumbled upon GLUE2 for the first time I dreamt of an automatic 
discovery system where ServiceTypes where automatically fetched by some 
monitoring system that would automatically understand what-is-what by 
looking at infosystem data. (the repetition of automatic* is intended ;) )

I foresee that such a "modal" setup for a CE or any resource being 
common in the future, and we have to suggest a sane way of  doing these 
things that comes towards operational needs (like GOCDB) and doesn't 
make the CE sysadmin job messy (no much manual data adding into a 
database).

Solution 1 would be: for ARC (and gLite and Unicore) to change its 
ServiceType or add another ComputingService entry to with 
ServiceType=dg.ARC-CE when operating as a Desktop Grid gateway. In a 
dream world, this could also allow autodiscovery of Desktop Grid 
Gateways, which is not done today (the gateway urls are hardcoded in 
clients)

The bad thing about the above is that hides the fact that ARC CE is 
actually acting exactly the same way as any ARC CE, it's just using a 
different backend.

So Solution 2 would be for monitoring/discovery clients to check 
ComputingManager to see what kind of LRMS is running behind it. But do 
all systems use an LRMS to achieve this? this is something we cannot 
hypothesize.

There might be a Solution 3 to this problem, that is, add this "modal 
operation" info somewhere else. where? OtherInfo? Capability? I have no 
clue...
Some reserved string like OtherInfo=DGGateway in all the CEs serving as 
gateways...

Solution 1 is the easiest one, and gives responsibility to developers to 
publish relevant information in their renderings if they want to be 
discovered properly, with little manual intervention from sysadmins.
Information clients could filter their searches depending on ServiceTypes.

In the ARC case, the changes in the code to have a different ServiceType 
when operating as a Desktop Grid gateway are trivial. However, we're 
doing strong coupling between ComputingService and ComputingManager, 
which I am not sure is sane...

So the bottom line is, what is the meaning and the use of ServiceType_t 
if not summarizing such complex setups? So far we mostly used endpoints 
for discovery. I think it SHOULD be used to summarize complex setups.

I think is a GLUE2 WG task to understand, if not describe and propose, 
how these values can be used in a nice way.

What's your opinion on that?

-- 
Florido Paganelli
Lund University - Particle Physics
ARC Middleware
EMI Project



More information about the glue-wg mailing list