These are chat archives for atomix/atomix

13th
Nov 2017
Brian Krahmer
@bkrahmer
Nov 13 2017 15:15
hi guys. i'm evaluating atomix 2.1 to get some distributed primitives into my microservice library (ja-micro). currently i'm playing just in junit to see how some things work. i've tried starting up three instances from within a test case, but they never seem to fully start up (i never see RaftServer{partition-1} - Transitioning to LEADER in the logs). getClusterService().getNodes() looks correct, but lockBuilder()...build() just hangs. is there something simple i am missing?
Brian Krahmer
@bkrahmer
Nov 13 2017 16:05
nm, got that working. i put each client into a separate thread, and found that all three nodes had to be in the bootstrap collection
Brian Krahmer
@bkrahmer
Nov 13 2017 16:18
that brings me to the crux. can i dynamically change the cluster members? in our normal environments, we have 3+ instances of a service running, where i want to coordinate distributed 'things' among them. let's say i start 3 instances of a service for the first time. it's okay for me to wait until i see two other instances so that i can bootstrap. now let's say i have a rolling deployment where one node goes away, and a new one replaces it. if i started with nodes A, B, and C and bootstrap them all with (A,B,C) and now A dies and D joins, if i bootstrap D with (B,C,D), will everybody be happy? i tried this with my test code, and the logs indicate it's not in a healthy state
Jordan Halterman
@kuujo
Nov 13 2017 18:58
Good question... so Atomix is basically three projects - Copycat, Atomix 1, and ONOS primitives - merged together. Finishing Atomix 2.1 has been a matter of moving a lot of code from ONOS into Atomix. So the answer to your question is: ONOS supports adding/removing nodes and generally reconfiguring the cluster, but that's the one feature that hasn't yet been moved into Atomix. But I can speed up that migration and finish up configuration changes as well.
Johno Crawford
@johnou
Nov 13 2017 21:12
@bkrahmer can you provide the junit testcase?
Johno Crawford
@johnou
Nov 13 2017 22:32
@kuujo so that would be scheduled after the documentation or? I actually thought that atomix in its current state would support nodes joining and leaving assuming they were not defined in the bootstrap list