[DRMAA-WG] IDL issues
Peter Tröger
peter at troeger.eu
Tue Jun 21 16:32:59 CDT 2011
Hi,
> The bigger ones are likely caused by my limited understanding of the
> background which led to the design, so please bear with me - I don't
> want to reopen any discussions which have been closed for good...
I like your attitude ;-) ...
> - the enum ResourceLimitType does not seem to be used anywhere
It defines the valid keys for JobTemplate::resourceLimits, so it does
not show up in the signatures.
> - the enum JobTemplatePlaceholder does not seem to be used anywhere
It defines the valid macros usable in job template attributes, see
Section 4.4. in Draft 6.
> - I think the following is asymmetric. There is likely a reason,
> but I am not sure I understand it:
>
> - job session: create (name, contact), open (name), close
> (session), destroy (name)
> - reserv. session: create (name, contact), open (name), close
> (session), destroy (name)
> - monit. session: create ( contact), close (session)
>
> From the above, it seems like create/close are pairs? I would
> naively expect the following
> pairs: open/close and create/destroy, as usual - what is the rationale?
I don't get your point. Creation returns a new persistent XXXsession
instance. Open allows you to re-access the persistent existing session.
Close is for cleanup after both create and open. Destroy throws away the
persistent information, and therefore does not demand an open session
instance.
> Why is the Monitoring session handled differently, i.e. has no
> name/open/destroy?
Monitoring session have no persistency, so they need no name for
opening, and no destruction.
> - jobInfo.exitStatus is a long. Shouldn't that be an int? Or is
> that an IDL artifact?
Yes. There are no INTs in IDL.
> - inErrorState: this is not explained - what does it mean? Am I
> getting reservation in an error state? What for? also, reservations
> don't seem to have state, really? (BTW: I did not check if all
> attributes are explained, just stumbled over this one. This should be
> checked).
Oops, we removed that one, but I forgot to fix the IDL too. Thanks.
> - JobWaitStarted/Terminated: The function returns always a Job
> object, in order to allow chaining,
> e.g. job.wait(JobStatus.RUNNING).hold(). The session-level functions
>
> I find that strange and inconsistent - chaining is not supported
> elsewhere AFAICS, why here?
> What is the advantage over 'job.wait(JobStatus.RUNNING);
> job.hold();'? this has exactly the same race conditions...
Chaining was raised as important thing only for the wait functions. I am
too lazy to search the minutes for this, but it is handy in OO
languages. We didn't spend deeper thoughts on supporting this elsewhere.
Proposals welcome.
>
> - StringList getJobSessions();
> StringList getReservationSessions();
>
> All getXYZ methods in the API return XYZ, apart from these two -
> which return the name of XYZ.
> IMHO, they should either return XYZ, or should be called
>
> StringList listJobSessions();
> StringList listReservationSessions();
Sounds reasonable to me, I put that on the open issues list for the group.
> - sessionManager.drmaaVersion: this seems to return the
> implementation version, not the
> DRMAA spec version (i.e. 2.0). I think this is useless without
> also reporting the
> drmaaName, i.e. the implementation name. Otherwise the user may
> report to you that
> she is using version 4.5, but what implementation?? ;-)
You get the DRMS type, this is your DRMAA implementation. I propose that
there will be no two DRMAA implementations for the same DRM system in
the same language.
> - what is the use of the sessionManager interface? It cannot be
> created/destroyed, so is likely a singleton?
> This however is not explicit in the spec. A sessionManager does
> not seem to have state (apart from the new
> addition of a monitoring callback), but a stateless singleton is
> rather useless? All methods can easily be
> provided as free functions - is a language binding allowed to do that?
Yes, it's a singleton. Yes, you can do free functions in the language
binding. IDL does not support that.
> - "sessionName: is supposed to be unique - if a session with that
> name was created before, an exception is thrown."
> Hmm, 'created before'? ever? by anybody? Or only for this
> session manager instance? Or this DRM system? etc etc.
Argh, we missed that one. I put it on the list of open issues. Since
sessions are expected to be submission-host specific, this should be
also the answer here.
Thanks for your help !
Peter.
More information about the drmaa-wg
mailing list