Extensible state model for jobs

Hi all, As Marvin mentioned in his email on extensibility and composition of protocols, I'd like to present this short document describing, in more detail, a model for extending the state model of jobs from a "base profile". The document is based on some discussions that Marvin and I have been having about scheduler interoperability, and is very close to the model that has been proposed within the SAGA working group. Please review Marvin's email about extensibility to get a feel for the "context" of the model. It is my intention to show how the ESI and BES state models can be represented using this approach. I'll try to get that done before Tokyo, but might just need to present some slides at GGF17, assuming I'm given a few minutes to do so. This is very much a work in progress, so I'm looking forward to feedback.... A note for the SAGA group .... I'd still like to see "pending" in the base job state diagram ... don't know why it disappeared. ;-) -- Chris

Quoting [Christopher Smith] (May 02 2006):
Hi all,
As Marvin mentioned in his email on extensibility and composition of protocols, I'd like to present this short document describing, in more detail, a model for extending the state model of jobs from a "base profile". The document is based on some discussions that Marvin and I have been having about scheduler interoperability, and is very close to the model that has been proposed within the SAGA working group. Please review Marvin's email about extensibility to get a feel for the "context" of the model.
It is my intention to show how the ESI and BES state models can be represented using this approach. I'll try to get that done before Tokyo, but might just need to present some slides at GGF17, assuming I'm given a few minutes to do so.
This is very much a work in progress, so I'm looking forward to feedback....
A note for the SAGA group .... I'd still like to see "pending" in the base job state diagram ... don't know why it disappeared. ;-)
Right now its absent because only those states which can be actually reached by SAGA method calls are present. Now, as you said earlier, it can be assumed a flaw that SAGA has no means to put a job into 'Pending' state. So, if there are some use cases or some agreement that the API should allow to move a job into 'Pending' state, the method/attribute will be added, and the state will be added. Similar reasoning holds for 'Suspend' - as long as we don't have suspend/resume methods, we would not like to expose a 'Suspended' state on the higher level state diagram. Well, thats my opinion at least ;-) I know that you see Pending as crucial. IIUC, that funds (partly) on the fact that most/all Queuing systems support pending. However, SAGA is right now not about submissing to queues in the first place, so I am not sure if that is relevant (right now). Could we discuss that in Tokyo? Some (real) use cases would be very convincing. Thanks, best regards, Andre.
-- Chris
-- "So much time, so little to do..." -- Garfield

On 03/5/06 05:36, "Andre Merzky" <andre@merzky.net> wrote:
Right now its absent because only those states which can be actually reached by SAGA method calls are present. Now, as you said earlier, it can be assumed a flaw that SAGA has no means to put a job into 'Pending' state.
So, if there are some use cases or some agreement that the API should allow to move a job into 'Pending' state, the method/attribute will be added, and the state will be added.
The state that a job enters after a create_job operation is 'pending', so the create_job operation is the method that puts a job in this state. This state is required for queuing systems ... I can't even imagine how it got dropped from the state diagram. I think you're trying to map the task state model too closely. ;-)
Similar reasoning holds for 'Suspend' - as long as we don't have suspend/resume methods, we would not like to expose a 'Suspended' state on the higher level state diagram.
This I agree with. -- Chris

Quoting [Christopher Smith] (May 03 2006):
On 03/5/06 05:36, "Andre Merzky" <andre@merzky.net> wrote:
Right now its absent because only those states which can be actually reached by SAGA method calls are present. Now, as you said earlier, it can be assumed a flaw that SAGA has no means to put a job into 'Pending' state.
So, if there are some use cases or some agreement that the API should allow to move a job into 'Pending' state, the method/attribute will be added, and the state will be added.
The state that a job enters after a create_job operation is 'pending', so the create_job operation is the method that puts a job in this state.
Right, I understand that from the queuing point I think. However, from the application level it does not matter, as it cannot actively change that state. We have no notion of queue states at all. Well, let me put it differently: what do we gain by moving the state to the higher level? It complicates the state diagram (not much, that is not the point), but does not allow to perform any new state transition from application level. As said, I would compare this to Suspended state: its clearly an important state in many systems, but as long as the API does not expose means to suspend/resume a job, the state is meaningless, and merily informative (e.g. the job gut suspended by a 3rd party, or by the backend). That information is exposed however, through the job state details - same holds for hols (ha!) I think.
This state is required for queuing systems ... I can't even imagine how it got dropped from the state diagram. I think you're trying to map the task state model too closely. ;-)
Nono, that has nothing to do with the task states - they could easily leave that state out. Well, its very convenient to have the same model here, thats for sure ;-)
Similar reasoning holds for 'Suspend' - as long as we don't have suspend/resume methods, we would not like to expose a 'Suspended' state on the higher level state diagram.
This I agree with.
As said, it might well be that SAGA is broken in the respect that we doesn't allow job.hold (), or submit into hold. Well, it wasn't in the use-cases ... :-P Cheers, Andre.
-- Chris
-- "So much time, so little to do..." -- Garfield
participants (2)
-
Andre Merzky
-
Christopher Smith