in my opinion the first, basic, assumption is: cluster farming service must deploy the same applications at the same version (right now this only means same modification date) in all the nodes. It must not be allowed that a farm directory contains and hence its related farm service deploys an application that is not deployed in all the other cluster nodes.
(i dont want here to touch the argument of atomic deployment ie what happens if a deploy is successful on one node and not in the others, that's another movie, and i want to see the thing just from the service startup point of view)
Given that, we can point out the following items:
1- the first node that cames up is the one that decides what applications and at what version will be initiallly deployed in the cluster
2- when a node is coming up it must not advertise its deployed applications untill it has fully catched up with the rest of the cluster (this is already done)
3- when a node is joining the cluster it must delete all the applications present in its farm directory, but not present in the application list it's getting from the cluster (this is easy, i tried it and can be done with a few lines of code)
3a - when a node joins the cluster it must obtain the list of clustered application from a node in the cluster (more on this later) and pull the applications from that node
3b- cluster always takes precedence, ie a joining node will always alingn on the cluster and not viceversa. A node could have been down for a while and applications could have been added, removed updated ,etc, so when it joins a cluster it must not be allowed to corrupt it with a possible outaded situation.
4- basing on the above items it means that when a farm service is up and running the farmed, deployed application are exactly aligned with all the cluster nodes.
5- if all the above items are respected, it doesn't matter from which node the applications are pulled since all the nodes will have the same content. A simple GET_FIRST request could be used.
(Rigth now since the node list is based on the startup order, the answers will always be returned in nodes startup order)
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3879415#3879415
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3879415