2a6e9e2e5c
See http://www.snookles.com/scotttmp/MyFirstMachiAnimation.mov for a very crude animation of a simulated network partition scenario. The animation is about 3.3 MBytes, but it's served by a 5 Mbit/sec network link, please be gentle & patient. Green = UPI/fully-in-sync part of the chain Purple = "Repair" part of the chain Grey = A limited # of older epochs are superimposed to demonstrate disagreement at this instant in time We have an asymmetric partition: 'c' can't send messages to 'a', but all other message passing is OK. These "private" epochs are thrashing between different views of the cluster, each author server making the same proposal over & over again. Author a: [b,a,c,d], epochs=524,528,530,532 Author b: [b,a,c,d], epochs=522,525,527,529,531 Author c: [b,c,d], epochs=521,523,526 Author d: [b,a,c,d], epochs=533 Finally, when the network partition disappears at epoch=533, everyone quickly makes the same decision on how to heal the cluster. The number of edges show the agreement (or lack thereof) of which epoch proposal is "in use" by a participant. The letter labels at the base of each arrow indicate the source/user of that edge. No, there is no replication to one's self, e.g. epoch=536. I've put that there to try extra emphasis that it's a chain of length 1. |
||
---|---|---|
.. | ||
pulse_util | ||
machi_admin_util_test.erl | ||
machi_chain_manager1_converge_demo.erl | ||
machi_chain_manager1_pulse.erl | ||
machi_chain_manager1_test.erl | ||
machi_flu1_test.erl | ||
machi_partition_simulator.erl | ||
machi_projection_test.erl | ||
machi_proxy_flu1_client_test.erl |