fdf78bdbbc
Last night we hit a rare case of failed convergence. f was out of sync with the rest of the world. f: upi=[b,g,f] repairing=[a,c] The "rest of the world" used a larger chain at: *: upi=[c,b,g,a], repairing=[f] And f refused to join the larger chain because of the way that IsRelevantToMe_p was being calculated before this commit. Hrrrm, though, I'm not convinced that this particular problem is fixed 100% by this patch. What if the chain lengths were the same but also UPI incompatible? e.g. if I remove 'a' from the "real world (in the partition simulator)" example above: f: upi=[b,g,f] repairing=[c] *: upi=[c,b,g], repairing=[f] Hrmmmmm, I may need to reintroduce the my-recent-adopted-projection- flapping-like-counter thingie to try to break this kind of incompatible deadlock. |
||
---|---|---|
.. | ||
machi.app.src | ||
machi.proto | ||
machi_admin_util.erl | ||
machi_app.erl | ||
machi_basho_bench_driver.erl | ||
machi_chain_manager1.erl | ||
machi_chain_repair.erl | ||
machi_chash.erl | ||
machi_cr_client.erl | ||
machi_dt.erl | ||
machi_fitness.erl | ||
machi_flu1.erl | ||
machi_flu1_client.erl | ||
machi_flu_psup.erl | ||
machi_flu_sup.erl | ||
machi_pb_high_client.erl | ||
machi_pb_translate.erl | ||
machi_projection.erl | ||
machi_projection_store.erl | ||
machi_proxy_flu1_client.erl | ||
machi_sequencer.erl | ||
machi_sup.erl | ||
machi_util.erl | ||
machi_yessir_client.erl |