[openstack-dev] taskflow usage

Joshua Harlow harlowja at outlook.com
Thu May 28 03:50:41 UTC 2015


So I'll give it a shot, and let me know if this explanation helps,

The idea is that u have some work (composed of tasks, flows, ...); that 
work is ran by some engine[1]. Hopefully that makes sense so far. Those 
engines track (and can save) the execution state of what has been 
executed and what is to be executed (using [2]). Doing this kind of 
'check-pointing' allows for that engine (or a new instance of it) to be 
resumed (or restarted after crashes...)

So then the question becomes what 'thing/entity' does this resumption 
and where is the work to be done retained and transferred upon crashes. 
That is the purpose/goal of a job (to track/maintain ownership and to 
retain enough metadata to know what to resume/run). Hopefully the docs 
at [3] help make this more obvious (and the diagram @ [4]). The idea is 
that some 'entity' (program, user, or other) would place a job to be 
done on some location and then some other entities (specialized workers, 
conductors[5]) would attempt to 'claim' that job (and then work on its 
contents). During that time when that entity is working on its claimed 
job, it may 'crash' or die (as often happens in distributed systems), 
and a side-effect of this is that the claim *will* be lost (or would 
expire) and another entity would be able to acquire that claim and 
resume that job (using the jobs internal metadata about what was done or 
needs to be done...); so this in a way makes the job (and the work it 
contains) highly available (in that if those set of entities keep on 
crashing, as long as some forward progress is made, that the job and its 
associated work will eventually complete).

[1] http://docs.openstack.org/developer/taskflow/engines.html
[2] http://docs.openstack.org/developer/taskflow/persistence.html
[3] http://docs.openstack.org/developer/taskflow/jobs.html
[4] https://wiki.openstack.org/wiki/TaskFlow#Big_picture
[5] http://docs.openstack.org/developer/taskflow/conductors.html

Hopefully that helps :)

If not feel free to jump on #openstack-state-management or 
#openstack-oslo and poke the members there.

-Josh

ESWAR RAO wrote:
> Hi All,
>
> I am looking into taskflow userguide and examples.
>
> http://www.giantflyingsaucer.com/blog/?p=4896
>
> Can anyone please help me how the job/job-board is related to task and
> flows.
>
> I understood atom is similar to a abstract interface andtaskflow is an
> atom that has execute()/revert() methods and a flow is structure that
> links these tasks.
>
> Is it that a job is broken into tasks??
> Can a job be broken into set of tasks???
>
> Thanks
> Eswar Rao
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list