machi/test
Scott Lystig Fritchie 2a6e9e2e5c Frame-by-frame animation of GraphViz-generated frames, first draft (comments)
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.
2015-04-16 00:23:07 +09:00
..
pulse_util WIP: client side projection store, 1st API op (write), part II 2015-04-03 17:10:52 +09:00
machi_admin_util_test.erl WIP: client side projection store, 1st API op (write), part II 2015-04-03 17:10:52 +09:00
machi_chain_manager1_converge_demo.erl Frame-by-frame animation of GraphViz-generated frames, first draft (comments) 2015-04-16 00:23:07 +09:00
machi_chain_manager1_pulse.erl Import of machi_chain_manager1.erl and friends; tests broken 2015-04-06 14:16:20 +09:00
machi_chain_manager1_test.erl WIP: some TODO cleanup & related refactoring 2015-04-10 22:00:52 +09:00
machi_flu1_test.erl WIP: more projection refactoring, eunit tests pass for the moment 2015-04-09 12:16:58 +09:00
machi_partition_simulator.erl WIP: some TODO cleanup & related refactoring 2015-04-10 22:00:52 +09:00
machi_projection_test.erl WIP: more projection refactoring, eunit tests pass for the moment 2015-04-09 12:16:58 +09:00
machi_proxy_flu1_client_test.erl WIP: remove old smoke0 code from machi_proxy_flu1_client_test.erl 2015-04-09 12:21:15 +09:00