[drmaa-wg] How long to use a Session?

Daniel Templeton Dan.Templeton at Sun.COM
Mon Jun 26 19:12:12 CDT 2006


Jeff,

A session is scope used to define a set of running jobs.  Sessions have 
two effects.  First, they enable the synchronize(ALL), wait(ANY), and 
control(ALL) methods.  With the ANY/ALL parameters, those method operate 
on any/all jobs in the session.  Second, the session also tends to bound 
job visibility.  You cannot call wait() or synchronize() on a job that 
was not submitted during the same session as the wait() call.  The same 
may apply to control() and getJobProgramStatus(), depending on the 
implementation.  With SGE, it does apply.

With the SGE 6.0u9 (coming soon) implementation of DRMAA, you have the 
ability to re-open a session that was previously exited.  This is 
important when writing daemons.  Otherwise, if your daemon crashes, you 
lose access to all the jobs that were previously submitted.  The caveat 
is that any jobs that ended between exiting the session and reattaching 
to it will no longer be accessible.  We've considered fixing that hole, 
but so far, the cure is worse than the disease.

Daniel

Jeff White wrote:
> I have a daemon process that periodically submits jobs to SGE. I have 
> a separate thread that uses Session.wait(JOBS_IDS_SESSION_ANY) to 
> gather the JobInfo objects, for example to add to a completion queue. 
> The session may be idle for long periods of time. Should I use a 
> single Session for the entire duration of the application, for each 
> submitted job, or something in between?
>
> jeff
>





More information about the drmaa-wg mailing list