You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by "Kanak Biscuitwala (JIRA)" <ji...@apache.org> on 2014/03/14 05:59:45 UTC

[jira] [Updated] (HELIX-336) Add support for task framework

     [ https://issues.apache.org/jira/browse/HELIX-336?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kanak Biscuitwala updated HELIX-336:
------------------------------------

    Fix Version/s: 0.7.1

> Add support for task framework
> ------------------------------
>
>                 Key: HELIX-336
>                 URL: https://issues.apache.org/jira/browse/HELIX-336
>             Project: Apache Helix
>          Issue Type: New Feature
>            Reporter: Zhen Zhang
>            Assignee: Zhen Zhang
>             Fix For: 0.7.1
>
>
> Tasks are partitioned and placed based on a target resource. An explicit set of partitions or partition states may also be specified.
> Tasks can be paused, resumed and deleted (the message handlers are still being worked on --- for the time being, the test cases directly set zk state).
> Task resources and associated state are expired out of zk after a configured amount of time has elapsed since it was created. This is a per-task configuration.
> The number of concurrent tasks that run per instance is configurable.
> The only error policy available right now is to fail the entire task if any single task partition fails a configured number of times.
> The Task state model is as follows:
>                                        init
>                                          +
>                                          |
>                                          |
>                                          v
>                  +-------------------+running+------------------------------+
>                  |                      + + +                               |
>                  |                      | | |                               |
>                  |                      | | +--------------------+          |
>                  |                      | |                      |          |
>                  |                +-----+ +--------+             |          |
>                  v                v                v             v          v
>                stopped        completed        timed_out     task_error   error
>                  +                +                +             +          +
>                  |                |                |             |          |
>                  |                +-----+ +--------+             |          |
>                  |                      | |                      |          |
>                  |                      | | +--------------------+          |
>                  |                      v v v                               |
>                  +------------------> dropped <-----------------------------+
> "init" is the initial state of a task partition. 
> "stopped" indicates that task partition is partially done but was stopped by the controller. 
> "completed" indicates that the task partition is complete. 
> "timed_out" indicates that the task partition did not complete within a configured time out value.
> "task_error" indicates that the task partition encountered an error during execution.
> "error" and "dropped" are helix internal states.
> The "init" to "running" transition does not wait for the task to finish execution on the participant. The participant requests state changes (to "completed" or "timed_out" or "task_error") via a "REQUESTED_STATE" property in the CURRENTSTATE znode.
> If the participant session is reset, all on-going tasks are stopped.



--
This message was sent by Atlassian JIRA
(v6.2#6252)