Hi all, I am a newbie to Zookeeper and Curator. After a couple of weeks reading, testing and playing with it, I am quite convinced that it is a great solution for our cluster management needs.
I would like to ask you some advice on how could I implement the following behaviour based on Curator recipes: We provide a service which is split/distributed among N nodes, and we would like to implement a N+1 redundancy strategy. That is N active nodes plus 1 spare node which can "behave" as any of the others. Indeed, when each node starts, it should take the following role: - a) Behave like a Spare Node: iif there are already "N" nodes working. - b) Behave like node (M+1): if (M < N) (assuming M is the number of current workers). Then, in case that any of the N working nodes dies, the Spare one should behave like the one that died. Summarizing, as an exemple with 3 hosts (1,2 and 3) this is a possible sequence of events: - Host 1 starts and acts as Node 1. - Host 2 starts and acts as Node 2. - Host 3 starts and acts as a Spare Node. - Host 2 dies. - Host 3 takes over and acts as Node 2. My question is about what do you guys think would be the best "practice" for implementing such scenario? I thought that the simplest thing to do was using an InterProcessSemaphoreV2 (N), so if a node can acquire the semaphore, it means that it is not the "Spare" one. However, I don't see a way in Curator to find out "which node I am" in case I can acquire de semaphore. On the contrary, LeaderLatch seems to handle participant IDs, etc... but there is only "one leader" at a time (obviusly). Thanks for your time. Any ideas are welcome. Best, Ignasi
