[SAGA-RG] missing(?) method reporting last modification time
Andre Merzky
andre at merzky.net
Fri Jun 5 09:00:49 CDT 2009
Hi again,
Quoting [Sylvain Reynaud] (Jun 05 2009):
>>
>>> - Queue: this attribute makes the job description dependent on the
>>> targeted
>>> execution site, this information should be put in the URL instead.
>>>
>>
>> Interesting point. The problem I see is that its hard to
>> define a standard way on *how* to encode it in the URL, as
>> each URL component (host, path, query, ...) may already be
>> interpreted by the backend.
>>
>> For example, a globus job manager URL may well look like
>>
>> https://some.remote.host:9443/wsrf/services/ManagedExecutableJobService?65e59770-35e1-11da-8810-a04185b6c7ae
>>
>> Where would you put the queue?
>>
> In JSAGA, such URL is used internally, user gives this URL:
> wsgram://some.remote.host:9443/Fork
sure, that will mostly work. The point is however, that we
can't assure that it breaks for other backends which require
a path specification on the URL.
> If encoding the queue in the URL is not an acceptable
> solution, then I think the queue should be moved from
> attributes of job description to arguments of method
> job_service.create_job.
Thats also an option. What would be the difference however
to keeping it in the job description? The info arrives at
the same call, once in the description, once separate.
I understand that having only JSDL approved keys in the job
description is a clean solution - but that is mostly for the
benefit of the SAGA implementors. For the SAGA users, that
makes not much of the difference, IMHO.
Well, I guess there are pros and cons for both versions.
Maybe others on the list have any preference one qay or the
other?
>>> - JobStartTime and JobContact: IMHO, these attributes are not in the 80%
>>> of the 80/20 rule, they are not supported by most middlewares, and
>>> they
>>> can be implemented by the user application.
>>>
>>
>> Those have been included because DRMAA has these, and the
>> DRMAA folx found them dead useful.
>>
>> JobStartTime I expect to get defined in JSDL when they get
>> started on scheduling (which is not in the near future
>> AFAIK). In SAGA, it probably should be move to the resource
>> management package, when that emerges.
>>
> When this feature is not available in middleware, should SAGA
> implementations delay job submission by itself (i.e. on client-side) or
> throw a NotImplemented exception ?
To throw or not to throw, both would be valid, IMHO, and up
to the implementation. For example, specifying a startup
time far in the future would most likely trigger a
BadParameter exception, as it cannot be expected that the
job service instance is still alive by then. Having a very
short delay may be acceptable for some implementations, and
not for others.
Anyway, a BadParameter exception is more appropriate than a
NotImplemented, as the latter would suggest that the method
create_job() is not implemented at all. BadParameter
suggests that the interpretation of the method parameters
(the job description) failed, which is in fact what happens.
>> JobContact is a tricky one: it seems dead useful to be able
>> to specify a custom name to a job, and to identify the job
>> thus in an easy way, but (a) I have yet to see a backend
>> which supports it, (b) SAGA does not provide a way to
>> actually *use* this name, e.g. as jobid, and (c) such a
>> mapping can trivially be implemented on application level.
>
> I think you are talking about JobName, which is currently supported by
> JSAGA (I plan to remove it for portability) but is not defined in the
> SAGA specification.
Uhoh, bad mixup on my part - my apologies!
> JobContact is "set of endpoints describing where to report
> job state transitions": I think your comments (a) and (c)
> also apply to this one.
Agree.
>> [Queued...]
>
> OK. I was thinking that state_detail was supposed to contain only
> middleware-specific states, but indeed nothing in the specification is
> saying that...
> So I agree with you, I will remove my sub_state attribute and use the
> state_detail instead !
Great!
>>> SAGA Name Spaces:
>>> ================
>>> * add a flag to disable checking existence of entry in constructor and
>>> open methods, because the cost for this check is not negligible with
>>> some protocols (then subsequent method calls on this object may throw an
>>> IncorrectState exception
>>> if the entry does not exist).
>>>
>>
>> Makes sense. We could also overload 'Exclusive', which, at
>> the moment, is only evaluated if 'Create' is specified. It
>> has the same semantic meaning so (inversed): if 'Exclusive'
>> is not specified on 'Create', an existing file is ignored.
>>
>> Would it make sense to allow Exclusive to be evaluated on
>> all c'tors and open calls?
Any feedback on this one? :-)
> >>SAGA Session:
> >>============
> >>* An exception should be thrown when several contexts of the session can
> >>be used for a specific method call. Else, some files may be created with
> >>unexpected owner, some jobs may fail at the end of execution because of
> >>unexpected permissions, some accounts may be locked because of too many
> >>failed connection attempts.
> >>
> >
> >Uh, this would badly break our use cases! In our
> >implementation, you may very well copy a file instance with
> >http, but read it with ftp, and delete it with nfs! And we
> >need the respective contexts for these backends on the same
> >session...
> >
> >Yes, results are not completely predictable if multiple
> >backends can be used, but the user has always the option to
> >create a specific session with exactly one context attached.
> >
> >So, that's a tough one.
> >
> OK. Can we consider that this is up to the implementation, or do you
> think these different behaviors would break portability ?
I think it makes sense to leave that to the implementation,
as (a) we have use cases for both versions, and (b)
implementations are not required to bind to multiple
backends: if they bind to a single backend, the behaviour
would be very much like what you describe.
I am still not sure about introducing an additional
exception here, but that is another issue...
> I think creating default session is very convenient, and I was
> frustrated not being able to use this possibility with my use-cases! ;-)
Hehe, I see. Good point. Might not justfy an errata, but
would be good to keep in mind for the next version...
Cheers, Andre.
--
Nothing is ever easy.
More information about the saga-rg
mailing list