
Andre, I agree with your email. Your state diagram looks a simpler compared to the one on the wiki. And I believe your proposal is a lot closer to existing state modeling activities in the OGF (?) This might be an opportunity to express some concerns I have for the verb part of noun-attribute-verb. I see the various states as sub- resources (attached as a collection to the main resource). I can read the collection to discover the complete history of the resource (something which currently is not possible?). Furthermore, using both 201 CREATED and 202 ACCEPTED, I am able to distinguish between the resource currently in the process of moving to that state, and the resource already in that state. The resource publishes which states it can transition to at any point, (in this respect quite similar to the changing list of actuator URIs), but the state transition is triggered by creating a new resource in the states collection. Thoughts ? regards, Roger
I would like to follow up on the state model thread, even if people seem to have mostly agreed upon the version documented in the wiki (http://forge.ogf.org/short/occi-wg/states)
I am really unhappy with a number of things:
- too many states - too many state transitions with no actions (i.e. methods) attached - unclear entry and exit points
Please allow me to elaborate
(1) Too many states:
All the XXX-ING states (STARTING, SUSPENDING, RESUMING, STOPPING) seem to have no real benefit, apart from informing the client that a state transition is in progress. State transitions, however, should, IMHO, not be part of a state diagram, unless specific actions can be performed during that transition.
For example the STOPPING state: there are no actions attached to that state, the client can do nothing but wait until the state reached STOPPED.
So, why not going to STOPPED immediately, and adding the transition process to the semantics of the STOPPED state? (e.g., "resources can still be utilized iff they are required to store or retrieve the VM state").
(2) Too many internal state transitions
That is related to (1) of course: the diagram has 11 internal state transitions (no actions attached), and 5 external transitions (actions attached)....
Well, that is not exactly incorrect or anything, but it is confusing matters. A state model should help to clarify what actions cause what state change.
(3) unclear entry and exit points
There is no state where the client can be sure that no remote resources are utilized anymore - i.e., an 'Destroyed' state is missing. At some point, a client needs to have the ability to free remote resources (well, unless one has garbage collection, but we don't want to go there, right?)
STOPPED is not really the same - a STOPPED state can be moved to STARTING/ACTIVE via start(), so the backend cannot be allowed to free the resources.
I do understand that the XXX-ING states are useful for informative purposes, for example, to allow a GUI to inform the user that a start() request has been received, and the backend is spinning up the machine. Those types of information can, however, easily provided by additional attributes, or sub-states.
Attached is an alternate state diagram. It's main purpose is to illustrate that, by limiting the number of states and internal state transitions, one can derive a much simplier (and IMHO cleaner) state diagram.
Cheers, Andre.
PS.: Sorry for not using graffle. Sources are in xfig, so I don't attach them - don't want to get laughed at for using such ancient technology ;-)
Quoting [Edmonds, AndrewX] (Apr 20 2009):
Updated...
-----Original Message-----
I agree - this is fine with me.
On Mon, 2009-04-20 at 14:02 +0100, Edmonds, AndrewX wrote:
Sounds like a good comprise J
From: Sam Johnston [mailto:samj@samj.net] Sent: 20 April 2009 13:52 To: Edmonds, AndrewX Cc: Thijs.Metsch@Sun.COM; occi-wg@ogf.org; Molino, VictorX M Subject: Re: [occi-wg] OCCI MC - State Machine Diagram
I'd tend to side with Thijs on this one - having a complete state machine is a lot less important when the implementation can tell its clients what the next states are (and the humans what they mean in plain $LANGUAGE). That said, if you want to add a dotted loop back to the start then that might help the perfectionists sleep easy.
Sam
On Mon, Apr 20, 2009 at 2:47 PM, Edmonds, AndrewX <andrewx.edmonds@intel.com> wrote:
Then conceptually, how do we recover from an error state if we've exited? Also if we want to support error state recovery, should the state model reflect this?
-----Original Message----- From: Thijs.Metsch@Sun.COM [mailto:Thijs.Metsch@Sun.COM] Sent: 20 April 2009 13:42 To: Sam Johnston Cc: Edmonds, AndrewX; occi-wg@ogf.org; Molino, VictorX M Subject: Re: [occi-wg] OCCI MC - State Machine Diagram
As I stated before maybe we an add another exit-point instead of a real state.
Cheers,
-Thijs
On Mon, 2009-04-20 at 14:39 +0200, Sam Johnston wrote:
On Mon, Apr 20, 2009 at 2:29 PM, Edmonds, AndrewX <andrewx.edmonds@intel.com> wrote: I updated the state model (attached) to include an error state. Couldn???t see how to delete attachments so maybe someone here has better luck? I also began to add identifiers to each process transition but the diagram started to become cluttered so left them out.
I would suggest that it's better to keep this clean (though I'm impressed that you got as far as you did!). You can reach an error state from anywhere - if a machine is found to be corrupt even while stopped then a STOPPED->ERROR transition makes sense for example.
Sam
From: occi-wg-bounces@ogf.org [mailto:occi-wg-bounces@ogf.org] On Behalf Of Sam Johnston Sent: 20 April 2009 11:56 To: Tino Vazquez Cc: occi-wg@ogf.org; Molino, VictorX M; Thijs Metsch
Subject: Re: [occi-wg] OCCI MC - State Machine Diagram
Hi Tino,
A lot of this is covered in the state registry (which I'll copy below for you) but comments inline nonetheless.
On Mon, Apr 20, 2009 at 12:35 PM, Tino Vazquez <tinova@fdi.ucm.es> wrote:
Howdy everyone,
Excellent thread. My three cents:
1) I think we should define clearly the semantics of the states. for instance, what is the difference between STOPPED and SUSPENDED? Is it that with SUSPENDED the state is saved and not with STOPPED?
Yes, it's exactly that. From the state registry: STOPPED = "The resource is inactive and has no saved state" and SUSPENDED="The resource is inactive and has saved state"
2) I really think we need an entry state like "PENDING" or "DEFINED". It will help in implementation relying on a best-effort scheduler to match VMs and hosts, like EC2 does. This will be the state where machines will wait for a host to be available to run on. Also, I don't really think that a machine entering its life cycle in SUSPENDED state is a good idea.
I tend to agree, but I'd like the terminology to be completely unambiguous... something like "NEW" [for this AS].
3) +1 to the "CRASHED", "ERROR" or "FAILED" state.
ABORT[ING|ED] = "The resource encountered an error and is aborting/has aborted".
What do you think?
Some of these transitions take a while so some way of indicating progress (especially interesting for long tasks like live migrations) would be useful. Would prefer a mechanism that worked universally for the API.
Sam
Extensions State control State
Transitions
Description
aborting
aborted
The resource encountered an error and is aborting
aborted
n/a
The resource encountered an error and has aborted
active
pause, restart, stop, suspend
The resource is active
resuming
aborting, active
The resource is becoming active and restoring state
pausing
aborting, paused
The resource is preparing to refuse new requests
paused
aborting, resume
The resource is refusing new requests
starting
aborting, active
The resource is becoming active
stopped
start
The resource is inactive and has no saved state
stopping
stopped, aborting
The resource is becoming inactive and destroying state
suspended
resume, stop
The resource is inactive and has saved state
Note: Stable states and user transitions in bold.
-------------------------------------------------------------
Intel Ireland Limited (Branch) Collinstown Industrial Park, Leixlip, County Kildare,
Ireland
Registered Number: E902934
This e-mail and any attachments may contain confidential
material for
the sole use of the intended recipient(s). Any review or
distribution
by others is strictly prohibited. If you are not the
intended
recipient, please contact the sender and delete all copies.
_______________________________________________ occi-wg mailing list occi-wg@ogf.org http://www.ogf.org/mailman/listinfo/occi-wg
-- Thijs Metsch Tel: +49 (0)941 3075-122 (x60122) http://blogs.sun.com/intheclouds Software Engineer Grid Computing Sun Microsystems GmbH Dr.-Leo-Ritter-Str. 7 mailto:thijs.metsch@sun.com D-93049 Regensburg http://www.sun.com
------------------------------------------------------------- Intel Ireland Limited (Branch) Collinstown Industrial Park, Leixlip, County Kildare, Ireland Registered Number: E902934
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
------------------------------------------------------------- Intel Ireland Limited (Branch) Collinstown Industrial Park, Leixlip, County Kildare, Ireland Registered Number: E902934
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
-- Nothing is ever easy. <occi-states.pdf>_______________________________________________ occi-wg mailing list occi-wg@ogf.org http://www.ogf.org/mailman/listinfo/occi-wg
Roger Menday (PhD) <roger.menday@uk.fujitsu.com> Senior Researcher, Fujitsu Laboratories of Europe Limited Hayes Park Central, Hayes End Road, Hayes, Middlesex, UB4 8FE, U.K. Tel: +44 (0) 208 606 4534 ______________________________________________________________________ Fujitsu Laboratories of Europe Limited Hayes Park Central, Hayes End Road, Hayes, Middlesex, UB4 8FE Registered No. 4153469 This e-mail and any attachments are for the sole use of addressee(s) and may contain information which is privileged and confidential. Unauthorised use or copying for disclosure is strictly prohibited. The fact that this e-mail has been scanned by Trendmicro Interscan and McAfee Groupshield does not guarantee that it has not been intercepted or amended nor that it is virus-free.