[saga-rg] Comments on the job API (revision 1.4)
Graeme Pound
G.E.POUND at soton.ac.uk
Fri Mar 3 05:35:04 CST 2006
Hi,
I have some comments on the job section of the Strawman API (revision 1.4).
Thanks
Graeme
-3.37 I do not understand the purpose of job_service.get_self() which
returns a Job object.
-3.38 I like the removal of the JobInfo and JobExitStatus objects from
the API, and adding this information as attributes to Job. This
streamlines the API, the concept of read only attributes also makes
sense [to me] within the context of the Job object.
-3.39 I like the simplification of the job_state enumeration. NB This
is called 'state' in the SIDL and should be corrected to 'job_state'.
-3.41 The separation of the JobService.submitJob() method into two
methods JobService.createJob() [create the job object] and Job.run()
[start the job] has not been seamless and there are several of
conceptual and practical problems. This needs to be fine-tuned further.
On many [all?] resource managers there is no separation between
submitting a job to the resource manager and manually starting the job,
this raises the following problem:
- Job objects are identified via the job_id which is described
as the "job identifier as returned by the resource manager".
Unfortunately since this information will only be available upon
submission of the job (via Job.run()) this breaks the methods
JobService.list() and JobService.getJob(). It is now impossible to
manage an index of Job objects within JobService based upon the job ID.
- What is the conceptual relationship between the JobService
and the resource manager? At present this is a little confused in a
couple of ways.
#1 Should there be a one to one relationship between
JobService instances and resource managers; i.e. should the resource
manager endpoint be specified in the JobService constructor (or
otherwise as an argument to JobService.createJob())?
#2 The term JobService implies a close relationship to the
resource manager. Previously JobService.submitJob() corresponded to
communication with the resource manager. Now JobService.createJob()
corresponds to the creation of instances of the Job class the JobService
is acting as a factory. It may beneficial to rename JobService to
JobFactory to clarify the relationship.
-3.42 Should Job objects created by runJob() be added to the index
managed by the JobService? Or in other terms, should JobService.runJob()
be a Java 'static' method?
More information about the saga-rg
mailing list