[ 
https://issues.apache.org/jira/browse/S4-24?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152111#comment-13152111
 ] 

Matthieu Morel commented on S4-24:
----------------------------------

Yes, that's a possible case, that's why we'll have to synchronize among 
multiple nodes.

The idea would be that:
1. when a new app is available, all nodes must first load this app
2. then when all nodes have loaded the app, (and that it has been verified in 
some way) , init and start routines can proceed. If all nodes cannot load the 
app after a given timeout, we should rollback and unload the app.
3. during runtime, if a node fails, the failover procedure should bring a warm 
node to the cluster, without the need to re-fetch the application. This implies 
that standby nodes must also load the apps. And that the synchronization among 
nodes and apps should also include those standby nodes, somehow.


                
> Dynamic deployment of S4 applications from a remote repository
> --------------------------------------------------------------
>
>                 Key: S4-24
>                 URL: https://issues.apache.org/jira/browse/S4-24
>             Project: Apache S4
>          Issue Type: Sub-task
>    Affects Versions: 0.5
>            Reporter: Matthieu Morel
>            Assignee: Matthieu Morel
>             Fix For: 0.5
>
>
> Use case:
> - at startup or during runtime, s4 nodes are notified of new applications 
> available. The code for these applications is fetched from a remote 
> repository, installed on S4 nodes, and the applications are started 
> automatically.
> How does it work?
> - Zookeeper is used for coordination: when a new app is available, it creates 
> a new znode under /s4-cluster-name/apps/app1
> - S4 nodes are notified of this new znode, which contains the s4r URI as 
> metadata
> - S4 nodes can then fetch the s4r, copy it to a local directory and start it
> - we also need a facility to create the app into Zookeeper, along with 
> required metadata
> For a first milestone, I suggest:
> - a simple file system based repository (can be a distributed file system)
> - deployment only, no unloading
> Later we can add extensions:
> - We could provide various repository clients, depending on the protocol 
> specified, and on the level of trust of the repository (although for a first 
> version, we would just provide a simple mechanism and assume a trustworthy 
> environment).
> - more metada in the application znode, in order to control the state of the 
> app, a time to start / stop, a number of nodes, nodes requirements etc...
> I'll start working on a first implementation, and I'm eager to receive 
> suggestions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to