helix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shi Lu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HELIX-45) Standalone helix agent
Date Wed, 08 May 2013 21:05:17 GMT

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

Shi Lu updated HELIX-45:
------------------------

    Issue Type: New Feature  (was: Task)
    
> Standalone helix agent
> ----------------------
>
>                 Key: HELIX-45
>                 URL: https://issues.apache.org/jira/browse/HELIX-45
>             Project: Apache Helix
>          Issue Type: New Feature
>    Affects Versions: 0.6.0-incubating
>            Reporter: kishore gopalakrishna
>            Assignee: Shirshanka Das
>             Fix For: 0.6.1-incubating
>
>         Attachments: helix-agent.diff
>
>
> Copy paste of email from Santiago.
> I'm interested in implementing a Helix based service capable of launching
> processes in a distributed environment. I would like to get feedback
> regarding the design and possible implementations as I understand there may
> be interest in such a service from others.
> The main idea is to have a Helix cluster (let's call it the AGENT cluster)
> where each machine (or virtual machine) has a participant in said cluster
> (let's call it the agent server). The agent servers would launch / kill
> processes in their respective machines in response to state transitions
> pushed by the helix controller.
> With this design, requesting processes to be launched basically would
> involve setting ideal state for a new resource in the agent cluster. Each
> resource would identify a process (or a set of processes) that should be
> launched by the agents, and each partition of that resource would define
> where that instance of the process should run via ideal state. The details
> of how to run the process would be part of the resource configuration.
> For instance if we wanted to launch a daemon process in 5 machines we would
> create a resource with 5 partitions let's call it "foo-daemon" and set it's
> ideal state to:
> "instancesMap" : {
>    "foo-daemon_1": {
>      "machine_a": "ONLINE",
>    },
>    "foo-daemon_2": {
>      "machine_b": "ONLINE",
>    },
>    "foo-daemon_3": {
>      "machine_c": "ONLINE",
>    },
>    "foo-daemon_4": {
>      "machine_d": "ONLINE",
>    },
>    "foo-daemon_5": {
>      "machine_e": "ONLINE",
>    }
> }
> When transitioning to the ONLINE state for the foo-daemon resource the
> agent server will launch the process based on the configuration defined for
> the resource and partition. When transitioning back to OFFLINE it will kill
> them.
> In the event of an agent being restarted, the agent should be able to
> discover the processes launched by its previous instance and match them to
> the state transitions pushed to avoid duplicating processes.
> The agent servers should also be responsible of monitoring their processes
> and exporting metrics and signals about their health.
> I'll try to provide more detail in this thread as the idea evolves and I
> would welcome any and all feedback.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message