Starting paxos for p10 Starting paxos for p7 Starting paxos for p8 Starting paxos for p9 Starting paxos for p6 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 Starting paxos for p11 :p8: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] :p3: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p7: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] :p2: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p9: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] p11 SET BALLOT VALUE 3 nil :p6: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] p6 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p4: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] :p1: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] :p10: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] :p11: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] :p5: started with [:p8, :p10, :p11, :p4, :p9, :p7, :p5, :p2, :p1, :p6, :p3] p10 - Propose 1 with action nil p10 - p1 is leader p7 - p1 is leader p6 - p1 is leader p2 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p7 - accept 1 1 {:val, 201} p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p1 accepted 1 1 p5 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p1 accepted 1 1 p3 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 201} p2 decided 1 {:val, 201} p7 decided 1 {:val, 201} p3 decided 1 {:val, 201} p5 decided 1 {:val, 201} p6 decided 1 {:val, 201} p7: decided {:val, 201} p3: decided {:val, 201} p2: decided {:val, 201} p6: decided {:val, 201} p1: decided {:val, 201} p5: decided {:val, 201} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p3 Starting paxos for p5 Starting paxos for p7 Starting paxos for p2 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 Starting paxos for p8 Starting paxos for p6 Starting paxos for p4 Starting paxos for p11 :p6: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p10: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p7: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] :p1: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] :p9: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] p7 - Propose 1 with action nil :p8: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] :p4: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] :p3: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p11: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] :p2: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] :p5: started with [:p5, :p7, :p1, :p11, :p8, :p6, :p4, :p9, :p2, :p3, :p10] p5 - Propose 1 with action nil p3 - p10 is leader p2 - p10 is leader p9 - p10 is leader p6 - p10 is leader p4 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p6 - prepare from p10 p10 - prepare from p10 p4 - prepare from p10 p2 - prepare from p10 p9 - prepare from p10 p3 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p2 - accept 1 1 {:val, 205} p10 SET BALLOT VALUE {:val, 205} p6 - accept 1 1 {:val, 205} p10 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 - accept 1 1 {:val, 205} p10 accepted 1 1 p4 - accept 1 1 {:val, 205} p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 205} p6 decided 1 {:val, 205} p9 decided 1 {:val, 205} p3 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p9: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p2: decided {:val, 205} p6: decided {:val, 205} p10: decided {:val, 205} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p6 Starting paxos for p10 Starting paxos for p3 Starting paxos for p8 Starting paxos for p1 Starting paxos for p2 Starting paxos for p5 Starting paxos for p7 Starting paxos for p9 Starting paxos for p4 Starting paxos for p11 :p10: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p6: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p5: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p8: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p9: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p3: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p4: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p2: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p7: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] :p11: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p1: started with [:p5, :p7, :p11, :p6, :p1, :p3, :p4, :p2, :p10, :p9, :p8] p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p10 - p10 is leader p10 sending all prepare 1 1 p3 - p10 is leader p10 SET BALLOT VALUE 2 nil p9 - prepare from p10 p10 - prepare from p10 p3 - prepare from p10 p2 - prepare from p10 p4 - prepare from p10 p8 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p8 - p10 is leader p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p10 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 accepted 1 1 p2 - accept 1 1 {:val, 203} p10 accepted 1 1 p4 - accept 1 1 {:val, 203} p2 - p10 is leader p10 accepted 1 1 p8 - accept 1 1 {:val, 203} p10 accepted 1 1 p9 - accept 1 1 {:val, 203} p10 accepted 1 1 p8 decided 1 {:val, 203} p4 decided 1 {:val, 203} p2 decided 1 {:val, 203} p3 decided 1 {:val, 203} p10 decided 1 {:val, 203} p9 decided 1 {:val, 203} p9 - p10 is leader p4 - p10 is leader p10: decided {:val, 203} p3: decided {:val, 203} p8: decided {:val, 203} p4: decided {:val, 203} p9: decided {:val, 203} p2: decided {:val, 203} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p2 Starting paxos for p4 Starting paxos for p10 Starting paxos for p6 Starting paxos for p7 Starting paxos for p1 Starting paxos for p8 Starting paxos for p5 Starting paxos for p3 Starting paxos for p9 Starting paxos for p11 :p11: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] :p10: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] :p2: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p6: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p8: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p4: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] p1 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil :p3: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] :p5: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p1: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] :p7: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] :p9: started with [:p8, :p2, :p6, :p5, :p7, :p1, :p3, :p4, :p9, :p11, :p10] p1 - Propose 1 with action nil p10 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p10 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p9 - p1 is leader p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p4 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p9 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 207} p1 Try to run prepared p3 - p1 is leader p11 - accept 1 1 {:val, 207} p1 11 7 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 - accept 1 1 {:val, 207} p1 accepted 1 1 p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p11 decided 1 {:val, 207} p9 decided 1 {:val, 207} p10 decided 1 {:val, 207} p1 decided 1 {:val, 207} p1: decided {:val, 207} p11: decided {:val, 207} p10: decided {:val, 207} p11 - p1 is leader p4: decided {:val, 207} p3: decided {:val, 207} p9: decided {:val, 207} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p5 Starting paxos for p9 Starting paxos for p10 Starting paxos for p4 Starting paxos for p6 Starting paxos for p7 Starting paxos for p8 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p11 :p4: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p7: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p6: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p3: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p10: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p11: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p8: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p5: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p9: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] :p1: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] p9 - Propose 1 with action nil p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p2: started with [:p5, :p9, :p4, :p8, :p3, :p2, :p1, :p6, :p7, :p10, :p11] p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p5 - p1 is leader p9 - p1 is leader p10 - p1 is leader p6 - p1 is leader p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p10 - prepare from p1 p7 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p2 - p1 is leader p1 SET BALLOT VALUE {:val, 203} p1 - prepared 1 1 nil nil p7 - accept 1 1 {:val, 203} p1 Try to run prepared p9 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 203} p11 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 203} p10 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p2 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 203} p1 accepted 1 1 p7 decided 1 {:val, 203} p2 decided 1 {:val, 203} p6 decided 1 {:val, 203} p11 decided 1 {:val, 203} p10 decided 1 {:val, 203} p9 decided 1 {:val, 203} p1 decided 1 {:val, 203} p2: decided {:val, 203} p11 - p1 is leader p7: decided {:val, 203} p6: decided {:val, 203} p10: decided {:val, 203} p11: decided {:val, 203} p1: decided {:val, 203} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p8 Starting paxos for p2 Starting paxos for p5 Starting paxos for p4 Starting paxos for p6 Starting paxos for p10 Starting paxos for p7 Starting paxos for p9 Starting paxos for p1 Starting paxos for p11 :p7: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p5: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p1: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p11: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p6: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p8: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p10: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p3: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p9: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] :p2: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] p2 - Propose 1 with action nil :p4: started with [:p4, :p2, :p10, :p7, :p6, :p3, :p5, :p8, :p11, :p1, :p9] p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p3 - p1 is leader p8 - p1 is leader p5 - p1 is leader p9 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p9 - prepare from p1 p8 - prepare from p1 p11 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p3 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 207} p3 decided 1 {:val, 207} p9 decided 1 {:val, 207} p8 decided 1 {:val, 207} p11 decided 1 {:val, 207} p5 decided 1 {:val, 207} p11 - p1 is leader p5: decided {:val, 207} p1: decided {:val, 207} p11: decided {:val, 207} p8: decided {:val, 207} p3: decided {:val, 207} p9: decided {:val, 207} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p7 Starting paxos for p6 Starting paxos for p10 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 Starting paxos for p9 Starting paxos for p8 Starting paxos for p1 Starting paxos for p11 :p5: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] :p4: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p5 - Propose 1 with action nil :p9: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] :p6: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p5 SET BALLOT VALUE 3 nil :p8: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p6 - Propose 1 with action nil :p2: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p4 SET BALLOT VALUE 3 nil :p1: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p10: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] :p7: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p7 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p3: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p11: started with [:p10, :p5, :p7, :p8, :p9, :p6, :p2, :p4, :p11, :p3, :p1] p6 - p1 is leader p5 - p1 is leader p10 - p1 is leader p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p11 - prepare from p1 p4 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p11 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p1 SET BALLOT VALUE {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 201} p4 decided 1 {:val, 201} p3 decided 1 {:val, 201} p6 decided 1 {:val, 201} p11 decided 1 {:val, 201} p2 decided 1 {:val, 201} p6: decided {:val, 201} p4: decided {:val, 201} p11 - p1 is leader p1: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p11: decided {:val, 201} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p8 Starting paxos for p3 Starting paxos for p5 Starting paxos for p7 Starting paxos for p6 Starting paxos for p4 Starting paxos for p1 Starting paxos for p2 Starting paxos for p10 Starting paxos for p9 Starting paxos for p11 :p9: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] :p11: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] :p2: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p4: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p10: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p7: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p3: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p1: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p7 - Propose 1 with action nil :p6: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p3 - Propose 1 with action nil :p5: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] :p8: started with [:p3, :p11, :p8, :p1, :p4, :p7, :p2, :p6, :p5, :p10, :p9] p5 - p10 is leader p7 - p10 is leader p6 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p9 - p10 is leader p5 - prepare from p10 p7 - prepare from p10 p10 SET BALLOT VALUE 2 nil p6 - prepare from p10 p2 - prepare from p10 p9 - prepare from p10 p10 - prepare from p10 p2 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p7 - accept 1 1 {:val, 207} p10 SET BALLOT VALUE {:val, 207} p9 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p10 accepted 1 1 p2 - accept 1 1 {:val, 207} p6 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 207} p7 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 decided 1 {:val, 207} p9 decided 1 {:val, 207} p6 decided 1 {:val, 207} p7: decided {:val, 207} p9: decided {:val, 207} p2: decided {:val, 207} p10: decided {:val, 207} p6: decided {:val, 207} p5: decided {:val, 207} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p8 Starting paxos for p7 Starting paxos for p5 Starting paxos for p3 Starting paxos for p6 Starting paxos for p4 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 Starting paxos for p2 Starting paxos for p11 :p8: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p7: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] p4 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p5: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] :p9: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] :p4: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] :p6: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] :p3: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] :p11: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] p2 SET BALLOT VALUE 3 nil :p10: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] :p2: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] :p1: started with [:p8, :p7, :p11, :p3, :p10, :p2, :p4, :p5, :p6, :p1, :p9] p2 - Propose 1 with action nil p7 - p1 is leader p8 - p1 is leader p5 - p1 is leader p4 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p8 - prepare from p1 p9 - p1 is leader p5 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p2 - p1 is leader p1 Try to run prepared p1 11 6 false p7 - accept 1 1 {:val, 203} p8 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 SET BALLOT VALUE {:val, 203} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 203} p6 - accept 1 1 {:val, 203} p1 Try to run prepared p1 11 7 true p4 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 203} p4 decided 1 {:val, 203} p1 accepted 1 1 p2 decided 1 {:val, 203} p6 decided 1 {:val, 203} p5 decided 1 {:val, 203} p8 decided 1 {:val, 203} p9 decided 1 {:val, 203} p1 decided 1 {:val, 203} p2: decided {:val, 203} p5: decided {:val, 203} p9: decided {:val, 203} p6: decided {:val, 203} p4: decided {:val, 203} p1: decided {:val, 203} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p8 Starting paxos for p9 Starting paxos for p5 Starting paxos for p7 Starting paxos for p3 Starting paxos for p6 Starting paxos for p4 Starting paxos for p1 Starting paxos for p2 Starting paxos for p10 Starting paxos for p11 :p8: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] :p7: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p7 - Propose 1 with action nil :p5: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p7 SET BALLOT VALUE 3 nil :p1: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] :p3: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p5 SET BALLOT VALUE 3 nil :p2: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] :p9: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p6 SET BALLOT VALUE 3 nil :p6: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p9 SET BALLOT VALUE 3 nil :p4: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p11: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p10: started with [:p7, :p1, :p3, :p8, :p4, :p2, :p11, :p9, :p6, :p10, :p5] p9 - p1 is leader p5 - p1 is leader p6 - p1 is leader p10 - p1 is leader p2 - p1 is leader p11 - p1 is leader p9 - p10 is leader p5 - p10 is leader p6 - p10 is leader p10 - p10 is leader p2 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p6 - prepare from p10 p5 - prepare from p10 p9 - prepare from p10 p11 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p6 - accept 1 1 {:val, 203} p10 SET BALLOT VALUE {:val, 203} p10 - accept 1 1 {:val, 203} p11 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p9 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p11 decided 1 {:val, 203} p2 decided 1 {:val, 203} p10 decided 1 {:val, 203} p6 decided 1 {:val, 203} p9 decided 1 {:val, 203} p5 decided 1 {:val, 203} p2: decided {:val, 203} p5: decided {:val, 203} p9: decided {:val, 203} p6: decided {:val, 203} p11: decided {:val, 203} p10: decided {:val, 203} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p7 Starting paxos for p10 Starting paxos for p11 Starting paxos for p6 Starting paxos for p5 Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 Starting paxos for p1 Starting paxos for p8 Starting paxos for p9 :p10: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p7: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p6: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p11: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p2: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p5: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p3: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p4: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p9: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p1: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] :p8: started with [:p7, :p10, :p11, :p6, :p5, :p2, :p3, :p4, :p1, :p8, :p9] p10 - Propose 1 with action nil p7 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p3 - p1 is leader p2 - p1 is leader p8 - p1 is leader p1 - p1 is leader p9 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p8 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p8 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p4 - accept 1 1 {:val, 202} p9 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 SET BALLOT VALUE {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p9 decided 1 {:val, 202} p8 decided 1 {:val, 202} p1 decided 1 {:val, 202} p4 decided 1 {:val, 202} p4: decided {:val, 202} p3: decided {:val, 202} p8: decided {:val, 202} p9: decided {:val, 202} p1: decided {:val, 202} p2: decided {:val, 202} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p3 Starting paxos for p8 Starting paxos for p7 Starting paxos for p4 Starting paxos for p10 Starting paxos for p5 Starting paxos for p9 Starting paxos for p6 Starting paxos for p11 Starting paxos for p1 :p2: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p5: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p3: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p6: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p8: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p7: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p11: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p4: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p10: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p9: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] :p1: started with [:p2, :p3, :p8, :p7, :p4, :p10, :p5, :p9, :p6, :p11, :p1] p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p9 - p1 is leader p5 - p1 is leader p10 - p1 is leader p11 - p1 is leader p1 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p9 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p6 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 204} p11 decided 1 {:val, 204} p10 decided 1 {:val, 204} p5 decided 1 {:val, 204} p9 decided 1 {:val, 204} p6 decided 1 {:val, 204} p6: decided {:val, 204} p5: decided {:val, 204} p11: decided {:val, 204} p1: decided {:val, 204} p9: decided {:val, 204} p10: decided {:val, 204} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p11 Starting paxos for p9 Starting paxos for p1 Starting paxos for p7 Starting paxos for p2 Starting paxos for p8 Starting paxos for p10 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p6 :p11: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p9: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p1: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p7: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p2: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p10: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p8: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p4: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p5: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p3: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] :p6: started with [:p11, :p9, :p1, :p7, :p2, :p8, :p10, :p5, :p4, :p3, :p6] p11 - Propose 1 with action nil p9 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p10 - p10 is leader p8 - p10 is leader p4 - p10 is leader p3 - p10 is leader p5 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p8 - prepare from p10 p3 - prepare from p10 p4 - prepare from p10 p6 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p6 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 209} p6 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p10 - accept 1 1 {:val, 209} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 209} p6 decided 1 {:val, 209} p4 decided 1 {:val, 209} p8 decided 1 {:val, 209} p3 decided 1 {:val, 209} p5 decided 1 {:val, 209} p10: decided {:val, 209} p4: decided {:val, 209} p5: decided {:val, 209} p6: decided {:val, 209} p3: decided {:val, 209} p8: decided {:val, 209} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p7 Starting paxos for p6 Starting paxos for p8 Starting paxos for p9 Starting paxos for p5 Starting paxos for p11 Starting paxos for p10 Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p7: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p6: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p9: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p5: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p11: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p8: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p10: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p4: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p1: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p3: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] :p2: started with [:p7, :p6, :p8, :p9, :p5, :p11, :p10, :p4, :p1, :p3, :p2] p7 - Propose 1 with action nil p6 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p10 - p1 is leader p11 - p1 is leader p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p11 - prepare from p1 p2 - prepare from p1 p10 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p4 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p10 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p11 decided 1 {:val, 202} p3 decided 1 {:val, 202} p10 decided 1 {:val, 202} p4 decided 1 {:val, 202} p2 decided 1 {:val, 202} p10: decided {:val, 202} p4: decided {:val, 202} p3: decided {:val, 202} p2: decided {:val, 202} p1: decided {:val, 202} p11: decided {:val, 202} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p10 Starting paxos for p11 Starting paxos for p7 Starting paxos for p4 Starting paxos for p9 Starting paxos for p1 Starting paxos for p8 Starting paxos for p6 Starting paxos for p3 Starting paxos for p5 :p2: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p11: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p10: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p7: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p4: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p9: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p1: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p8: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p5: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p6: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] :p3: started with [:p2, :p10, :p11, :p7, :p4, :p9, :p1, :p8, :p6, :p3, :p5] p2 - Propose 1 with action nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p1 - p1 is leader p9 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p8 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p5 - p1 is leader p6 - p1 is leader p1 - prepared 1 1 nil nil p8 - p1 is leader p3 - p1 is leader p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p9 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p8 - accept 1 1 {:val, 206} p6 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 206} p1 decided 1 {:val, 206} p3 decided 1 {:val, 206} p8 decided 1 {:val, 206} p6 decided 1 {:val, 206} p5 decided 1 {:val, 206} p1: decided {:val, 206} p8: decided {:val, 206} p6: decided {:val, 206} p5: decided {:val, 206} p3: decided {:val, 206} p9: decided {:val, 206} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p8 Starting paxos for p5 Starting paxos for p7 Starting paxos for p2 Starting paxos for p3 Starting paxos for p10 Starting paxos for p4 Starting paxos for p6 Starting paxos for p11 Starting paxos for p1 Starting paxos for p9 :p8: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p5: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p7: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p2: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p3: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p10: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p4: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p6: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p11: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p9: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] :p1: started with [:p8, :p5, :p7, :p2, :p3, :p10, :p4, :p6, :p11, :p1, :p9] p8 - Propose 1 with action nil p5 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p10 - p1 is leader p4 - p1 is leader p6 - p1 is leader p1 - p1 is leader p11 - p1 is leader p9 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p6 - prepare from p1 p10 - prepare from p1 p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p4 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 decided 1 {:val, 204} p6 decided 1 {:val, 204} p4 decided 1 {:val, 204} p1 decided 1 {:val, 204} p11 decided 1 {:val, 204} p9 decided 1 {:val, 204} p4: decided {:val, 204} p6: decided {:val, 204} p9: decided {:val, 204} p11: decided {:val, 204} p1: decided {:val, 204} p10: decided {:val, 204} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p2 Starting paxos for p6 Starting paxos for p3 Starting paxos for p8 Starting paxos for p9 Starting paxos for p1 Starting paxos for p7 Starting paxos for p5 Starting paxos for p11 Starting paxos for p4 Starting paxos for p10 :p2: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p6: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p3: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p9: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p8: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p1: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p5: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p7: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p11: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p4: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] :p10: started with [:p2, :p6, :p3, :p8, :p9, :p1, :p7, :p5, :p11, :p4, :p10] p2 - Propose 1 with action nil p6 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p11 - p1 is leader p1 - p1 is leader p10 - p1 is leader p7 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p11 - prepare from p1 p4 - prepare from p1 p10 - prepare from p1 p1 - prepared 1 1 nil nil p4 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p7 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p1 accepted 1 1 p5 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 207} p5 decided 1 {:val, 207} p7 decided 1 {:val, 207} p11 decided 1 {:val, 207} p10 decided 1 {:val, 207} p4 decided 1 {:val, 207} p10: decided {:val, 207} p5: decided {:val, 207} p4: decided {:val, 207} p11: decided {:val, 207} p7: decided {:val, 207} p1: decided {:val, 207} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p4 Starting paxos for p10 Starting paxos for p8 Starting paxos for p7 Starting paxos for p1 Starting paxos for p11 Starting paxos for p6 Starting paxos for p5 Starting paxos for p9 Starting paxos for p3 :p11: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p4: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p2: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p10: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p5: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p9: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p8: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p7: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p1: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p3: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] :p6: started with [:p4, :p2, :p10, :p8, :p7, :p1, :p11, :p6, :p5, :p9, :p3] p4 - Propose 1 with action nil p2 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p3 - p1 is leader p9 - p1 is leader p6 - p1 is leader p1 - p1 is leader p11 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p5 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p6 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 accepted 1 1 p9 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 207} p11 decided 1 {:val, 207} p6 decided 1 {:val, 207} p5 decided 1 {:val, 207} p9 decided 1 {:val, 207} p3 decided 1 {:val, 207} p11: decided {:val, 207} p5: decided {:val, 207} p3: decided {:val, 207} p9: decided {:val, 207} p6: decided {:val, 207} p1: decided {:val, 207} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p7 Starting paxos for p11 Starting paxos for p10 Starting paxos for p6 Starting paxos for p8 Starting paxos for p9 Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 Starting paxos for p2 :p7: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p9: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p4: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p11: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p1: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p10: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p6: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p8: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p3: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p5: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] :p2: started with [:p7, :p11, :p10, :p6, :p8, :p9, :p4, :p1, :p3, :p5, :p2] p7 - Propose 1 with action nil p11 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p4 - p1 is leader p9 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p9 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p1 accepted 1 1 p2 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 206} p5 decided 1 {:val, 206} p2 decided 1 {:val, 206} p4 decided 1 {:val, 206} p1 decided 1 {:val, 206} p3 decided 1 {:val, 206} p3: decided {:val, 206} p2: decided {:val, 206} p4: decided {:val, 206} p1: decided {:val, 206} p5: decided {:val, 206} p9: decided {:val, 206} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p11 Starting paxos for p7 Starting paxos for p3 Starting paxos for p10 Starting paxos for p5 Starting paxos for p6 Starting paxos for p8 Starting paxos for p2 Starting paxos for p4 Starting paxos for p9 Starting paxos for p1 :p7: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p8: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p3: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p11: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p2: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p10: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p9: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p5: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p6: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p4: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] :p1: started with [:p11, :p7, :p3, :p10, :p5, :p6, :p8, :p2, :p4, :p9, :p1] p7 - Propose 1 with action nil p11 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p6 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p9 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p4 - prepare from p1 p1 Try to run prepared p2 - prepare from p1 p9 - prepare from p1 p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p8 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p9 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 205} p6 decided 1 {:val, 205} p9 decided 1 {:val, 205} p2 decided 1 {:val, 205} p8 decided 1 {:val, 205} p1 decided 1 {:val, 205} p1: decided {:val, 205} p4: decided {:val, 205} p2: decided {:val, 205} p9: decided {:val, 205} p8: decided {:val, 205} p6: decided {:val, 205} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p8 Starting paxos for p4 Starting paxos for p5 Starting paxos for p10 Starting paxos for p9 Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 Starting paxos for p6 Starting paxos for p7 Starting paxos for p11 :p5: started :p10: started :p11: started spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] :p9: started spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] :p3: started spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] :p1: started :p6: started p10 - Propose 1 with action nil :p4: started :p8: started :p2: started p10 SET BALLOT VALUE 3 nil spare = [:p3, :p6, :p7, :p11, :p8, :p10] spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] p6 SET BALLOT VALUE 3 nil spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil :p7: started p7 SET BALLOT VALUE 3 nil spare = [:p3, :p6, :p7, :p11, :p8, :p10] p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] p2 - Propose 1 with action nil spare = [:p3, :p6, :p7, :p11, :p8, :p10] kill: leaders, followers = [:p2, :p4], [:p9, :p5, :p1] p8 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p3 - prepare from p10 p6 - prepare from p10 p7 - prepare from p10 p11 - prepare from p10 p8 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 202} p3 - accept 1 1 {:val, 202} p10 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p7 - accept 1 1 {:val, 202} p10 accepted 1 1 p6 - accept 1 1 {:val, 202} p6 - p10 is leader p10 accepted 1 1 p8 - accept 1 1 {:val, 202} p10 accepted 1 1 p3 decided 1 {:val, 202} p11 decided 1 {:val, 202} p7 decided 1 {:val, 202} p8 decided 1 {:val, 202} p6 decided 1 {:val, 202} p10 decided 1 {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p7 - p10 is leader p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p3 - p10 is leader p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p10: decided {:val, 202} p11: decided {:val, 202} p3: decided {:val, 202} p6: decided {:val, 202} p8: decided {:val, 202} p7: decided {:val, 202} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p7 Starting paxos for p1 Starting paxos for p9 Starting paxos for p5 Starting paxos for p10 Starting paxos for p3 Starting paxos for p2 Starting paxos for p8 Starting paxos for p4 Starting paxos for p6 Starting paxos for p11 :p7: started :p8: started :p1: started :p10: started :p6: started :p3: started :p4: started spare = [:p5, :p4, :p9, :p10, :p7, :p6] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] :p9: started :p11: started :p2: started spare = [:p5, :p4, :p9, :p10, :p7, :p6] :p5: started spare = [:p5, :p4, :p9, :p10, :p7, :p6] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] spare = [:p5, :p4, :p9, :p10, :p7, :p6] spare = [:p5, :p4, :p9, :p10, :p7, :p6] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] spare = [:p5, :p4, :p9, :p10, :p7, :p6] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] spare = [:p5, :p4, :p9, :p10, :p7, :p6] spare = [:p5, :p4, :p9, :p10, :p7, :p6] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] spare = [:p5, :p4, :p9, :p10, :p7, :p6] spare = [:p5, :p4, :p9, :p10, :p7, :p6] p1 - Propose 1 with action nil spare = [:p5, :p4, :p9, :p10, :p7, :p6] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p1], [:p11, :p3, :p8] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 - p1 is leader p7 - p1 is leader p1 sending all prepare 1 1 p4 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p9 - prepare from p1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p7 - prepare from p1 p5 - p1 is leader p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p2 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p1 SET BALLOT VALUE {:val, 201} p5 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p9 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p1 accepted 1 1 p4 - accept 1 1 {:val, 201} p1 accepted 1 1 p9 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 201} p10 decided 1 {:val, 201} p9 decided 1 {:val, 201} p2 decided 1 {:val, 201} p5 decided 1 {:val, 201} p4 decided 1 {:val, 201} p6 decided 1 {:val, 201} p1 accepted 1 1 p10 - p1 is leader p1 decided 1 {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p4 - p1 is leader p6 - p1 is leader p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p6: decided {:val, 201} p5: decided {:val, 201} p7: decided {:val, 201} p4: decided {:val, 201} p10: decided {:val, 201} p9: decided {:val, 201} p5: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p5 Starting paxos for p2 Starting paxos for p10 Starting paxos for p1 Starting paxos for p8 Starting paxos for p3 Starting paxos for p6 Starting paxos for p9 Starting paxos for p7 Starting paxos for p4 Starting paxos for p11 :p8: started :p9: started :p1: started :p3: started :p2: started :p11: started spare = [:p11, :p6, :p2, :p7, :p3, :p9] :p10: started :p4: started kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] :p7: started :p6: started spare = [:p11, :p6, :p2, :p7, :p3, :p9] :p5: started spare = [:p11, :p6, :p2, :p7, :p3, :p9] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] spare = [:p11, :p6, :p2, :p7, :p3, :p9] spare = [:p11, :p6, :p2, :p7, :p3, :p9] spare = [:p11, :p6, :p2, :p7, :p3, :p9] spare = [:p11, :p6, :p2, :p7, :p3, :p9] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] spare = [:p11, :p6, :p2, :p7, :p3, :p9] spare = [:p11, :p6, :p2, :p7, :p3, :p9] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] p9 - Propose 1 with action nil spare = [:p11, :p6, :p2, :p7, :p3, :p9] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] spare = [:p11, :p6, :p2, :p7, :p3, :p9] p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] kill: leaders, followers = [:p5, :p10], [:p8, :p4, :p1] p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p5 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 - p1 is leader p2 - p1 is leader p10 - p1 is leader p9 - p10 is leader p3 - p10 is leader p6 - p10 is leader p7 - p10 is leader p11 - p10 is leader p2 - p10 is leader p9 - p11 is leader p3 - p11 is leader p6 - p11 is leader p7 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p9 - prepare from p11 p7 - prepare from p11 p6 - prepare from p11 p3 - prepare from p11 p2 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 202} p9 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p11 accepted 1 1 p11 accepted 1 1 p3 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p11 accepted 1 1 p11 accepted 1 1 p7 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p11 accepted 1 1 p11 accepted 1 1 p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p9 decided 1 {:val, 202} p7 decided 1 {:val, 202} p6 decided 1 {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p11 decided 1 {:val, 202} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 202} p9: decided {:val, 202} p11: decided {:val, 202} p2: decided {:val, 202} p6: decided {:val, 202} p3: decided {:val, 202} p7: decided {:val, 202} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p6 Starting paxos for p2 Starting paxos for p7 Starting paxos for p9 Starting paxos for p5 Starting paxos for p8 Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p10 Starting paxos for p11 :p3: started :p1: started :p11: started :p9: started :p2: started :p5: started :p8: started :p6: started spare = [:p4, :p5, :p10, :p3, :p6, :p2] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] spare = [:p4, :p5, :p10, :p3, :p6, :p2] spare = [:p4, :p5, :p10, :p3, :p6, :p2] spare = [:p4, :p5, :p10, :p3, :p6, :p2] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] spare = [:p4, :p5, :p10, :p3, :p6, :p2] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] spare = [:p4, :p5, :p10, :p3, :p6, :p2] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] spare = [:p4, :p5, :p10, :p3, :p6, :p2] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] spare = [:p4, :p5, :p10, :p3, :p6, :p2] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p4: started :p7: started :p10: started p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil spare = [:p4, :p5, :p10, :p3, :p6, :p2] p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil spare = [:p4, :p5, :p10, :p3, :p6, :p2] p6 SET BALLOT VALUE 3 nil spare = [:p4, :p5, :p10, :p3, :p6, :p2] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] p7 - Propose 1 with action nil p4 - Propose 1 with action nil p2 - p1 is leader p6 - p1 is leader p5 - p1 is leader p7 - p1 is leader p4 - p10 is leader p3 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p7 - prepare from p10 p2 - prepare from p10 p5 - prepare from p10 p3 - prepare from p10 p6 - prepare from p10 p4 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p2 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p10 SET BALLOT VALUE {:val, 204} p10 - prepared 1 1 nil nil p6 - accept 1 1 {:val, 204} p10 Try to run prepared p10 11 7 true p5 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 204} p6 decided 1 {:val, 204} p5 decided 1 {:val, 204} p2 decided 1 {:val, 204} p4 decided 1 {:val, 204} p3 decided 1 {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p2: decided {:val, 204} p4: decided {:val, 204} p5: decided {:val, 204} p3: decided {:val, 204} p6: decided {:val, 204} p10: decided {:val, 204} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p9 Starting paxos for p3 Starting paxos for p6 Starting paxos for p2 Starting paxos for p8 Starting paxos for p5 Starting paxos for p1 Starting paxos for p4 Starting paxos for p10 Starting paxos for p7 Starting paxos for p11 :p7: started :p2: started :p4: started :p5: started :p3: started :p6: started :p10: started :p9: started :p8: started :p1: started :p11: started spare = [:p1, :p9, :p6, :p7, :p11, :p8] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] spare = [:p1, :p9, :p6, :p7, :p11, :p8] spare = [:p1, :p9, :p6, :p7, :p11, :p8] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] p2 - Propose 1 with action nil spare = [:p1, :p9, :p6, :p7, :p11, :p8] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] spare = [:p1, :p9, :p6, :p7, :p11, :p8] spare = [:p1, :p9, :p6, :p7, :p11, :p8] p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] spare = [:p1, :p9, :p6, :p7, :p11, :p8] spare = [:p1, :p9, :p6, :p7, :p11, :p8] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] spare = [:p1, :p9, :p6, :p7, :p11, :p8] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] spare = [:p1, :p9, :p6, :p7, :p11, :p8] spare = [:p1, :p9, :p6, :p7, :p11, :p8] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] kill: leaders, followers = [:p3, :p2], [:p5, :p10, :p4] p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - p1 is leader p6 - p1 is leader p8 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p8 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p8 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p1 accepted 1 1 p9 - accept 1 1 {:val, 201} p7 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 201} p1 accepted 1 1 p6 decided 1 {:val, 201} p9 decided 1 {:val, 201} p7 decided 1 {:val, 201} p11 decided 1 {:val, 201} p8 decided 1 {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p1 decided 1 {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p6: decided {:val, 201} p11: decided {:val, 201} p7: decided {:val, 201} p1: decided {:val, 201} p8: decided {:val, 201} p9: decided {:val, 201} p8: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p9 Starting paxos for p7 Starting paxos for p4 Starting paxos for p3 Starting paxos for p10 Starting paxos for p8 Starting paxos for p1 Starting paxos for p6 Starting paxos for p2 Starting paxos for p5 Starting paxos for p11 :p9: started :p4: started spare = [:p11, :p3, :p8, :p4, :p1, :p10] :p10: started kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] :p1: started :p11: started spare = [:p11, :p3, :p8, :p4, :p1, :p10] :p5: started :p8: started spare = [:p11, :p3, :p8, :p4, :p1, :p10] :p2: started :p6: started kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] :p3: started spare = [:p11, :p3, :p8, :p4, :p1, :p10] spare = [:p11, :p3, :p8, :p4, :p1, :p10] kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] :p7: started spare = [:p11, :p3, :p8, :p4, :p1, :p10] spare = [:p11, :p3, :p8, :p4, :p1, :p10] spare = [:p11, :p3, :p8, :p4, :p1, :p10] kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil spare = [:p11, :p3, :p8, :p4, :p1, :p10] spare = [:p11, :p3, :p8, :p4, :p1, :p10] spare = [:p11, :p3, :p8, :p4, :p1, :p10] p5 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] p5 - Propose 1 with action nil p11 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p5, :p6], [:p2, :p9, :p7] p7 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 - p1 is leader p3 - p1 is leader p10 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p6 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p11 - prepare from p1 p10 - prepare from p1 p1 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p8 - p1 is leader p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p10 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p6 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p1 11 8 true p3 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p8 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p11 decided 1 {:val, 202} p8 decided 1 {:val, 202} p4 decided 1 {:val, 202} p1 decided 1 {:val, 202} p3 decided 1 {:val, 202} p10 decided 1 {:val, 202} p6 decided 1 {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 202} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 202} p11 - p1 is leader p10: decided {:val, 202} p11: decided {:val, 202} p4: decided {:val, 202} p8: decided {:val, 202} p1: decided {:val, 202} p3: decided {:val, 202} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p8: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p3 Starting paxos for p5 Starting paxos for p10 Starting paxos for p6 Starting paxos for p2 Starting paxos for p9 Starting paxos for p8 Starting paxos for p4 Starting paxos for p7 Starting paxos for p1 Starting paxos for p11 :p5: started :p1: started :p8: started spare = [:p7, :p10, :p9, :p6, :p2, :p1] kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] spare = [:p7, :p10, :p9, :p6, :p2, :p1] kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] spare = [:p7, :p10, :p9, :p6, :p2, :p1] :p2: started kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] :p3: started :p11: started :p6: started :p10: started p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p4: started p1 - Propose 1 with action nil spare = [:p7, :p10, :p9, :p6, :p2, :p1] p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] :p7: started p7 SET BALLOT VALUE 3 nil spare = [:p7, :p10, :p9, :p6, :p2, :p1] :p9: started kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] spare = [:p7, :p10, :p9, :p6, :p2, :p1] p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] p4 SET BALLOT VALUE 3 nil spare = [:p7, :p10, :p9, :p6, :p2, :p1] kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil spare = [:p7, :p10, :p9, :p6, :p2, :p1] spare = [:p7, :p10, :p9, :p6, :p2, :p1] kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] spare = [:p7, :p10, :p9, :p6, :p2, :p1] kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] p7 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil spare = [:p7, :p10, :p9, :p6, :p2, :p1] kill: leaders, followers = [:p3, :p8], [:p5, :p4, :p11] p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p10 - p1 is leader p6 - p1 is leader p2 - p1 is leader p7 - p1 is leader p9 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p6 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p1 SET BALLOT VALUE {:val, 201} p9 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p1 - prepared 1 1 nil nil p10 - accept 1 1 {:val, 201} p1 Try to run prepared p1 11 7 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 201} p2 decided 1 {:val, 201} p10 decided 1 {:val, 201} p9 decided 1 {:val, 201} p6 decided 1 {:val, 201} p1 decided 1 {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 201} p1: decided {:val, 201} p7: decided {:val, 201} p2: decided {:val, 201} p9: decided {:val, 201} p6: decided {:val, 201} p10: decided {:val, 201} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p7 Starting paxos for p10 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p6 Starting paxos for p4 Starting paxos for p8 Starting paxos for p9 Starting paxos for p11 :p2: started spare = [:p5, :p10, :p3, :p6, :p9, :p4] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p10: started p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil spare = [:p5, :p10, :p3, :p6, :p9, :p4] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] :p11: started :p1: started p11 SET BALLOT VALUE 3 nil :p9: started p3 SET BALLOT VALUE 3 nil spare = [:p5, :p10, :p3, :p6, :p9, :p4] :p6: started kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] :p3: started :p4: started spare = [:p5, :p10, :p3, :p6, :p9, :p4] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] :p8: started p1 - Propose 1 with action nil spare = [:p5, :p10, :p3, :p6, :p9, :p4] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] spare = [:p5, :p10, :p3, :p6, :p9, :p4] spare = [:p5, :p10, :p3, :p6, :p9, :p4] :p7: started p5 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] :p5: started spare = [:p5, :p10, :p3, :p6, :p9, :p4] spare = [:p5, :p10, :p3, :p6, :p9, :p4] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] p4 - Propose 1 with action nil spare = [:p5, :p10, :p3, :p6, :p9, :p4] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] spare = [:p5, :p10, :p3, :p6, :p9, :p4] kill: leaders, followers = [:p2, :p1], [:p7, :p11, :p8] p5 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p4 - prepare from p1 p6 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p6 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p1 SET BALLOT VALUE {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - accept 1 1 {:val, 201} p1 11 8 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p4 - accept 1 1 {:val, 201} p1 accepted 1 1 p9 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 201} p4 decided 1 {:val, 201} p6 decided 1 {:val, 201} p3 decided 1 {:val, 201} p9 decided 1 {:val, 201} p5 decided 1 {:val, 201} p10 - accept 1 1 {:val, 201} p1 decided 1 {:val, 201} p2 - p1 is leader p6 - p1 is leader p9 - p1 is leader p10 decided 1 {:val, 201} p4 - p1 is leader p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p10: decided {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p3: decided {:val, 201} p6: decided {:val, 201} p9: decided {:val, 201} p4: decided {:val, 201} p5: decided {:val, 201} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p8 Starting paxos for p1 Starting paxos for p10 Starting paxos for p2 Starting paxos for p6 Starting paxos for p3 Starting paxos for p9 Starting paxos for p5 Starting paxos for p7 Starting paxos for p4 Starting paxos for p11 :p4: started :p1: started :p7: started :p9: started :p5: started spare = [:p9, :p3, :p4, :p7, :p2, :p6] :p3: started kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] spare = [:p9, :p3, :p4, :p7, :p2, :p6] :p8: started kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] :p2: started :p6: started :p10: started p1 - Propose 1 with action nil spare = [:p9, :p3, :p4, :p7, :p2, :p6] spare = [:p9, :p3, :p4, :p7, :p2, :p6] spare = [:p9, :p3, :p4, :p7, :p2, :p6] :p11: started p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] spare = [:p9, :p3, :p4, :p7, :p2, :p6] p11 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] p9 SET BALLOT VALUE 3 nil spare = [:p9, :p3, :p4, :p7, :p2, :p6] p6 SET BALLOT VALUE 3 nil spare = [:p9, :p3, :p4, :p7, :p2, :p6] kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] p9 - Propose 1 with action nil kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] spare = [:p9, :p3, :p4, :p7, :p2, :p6] p3 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] p4 SET BALLOT VALUE 3 nil spare = [:p9, :p3, :p4, :p7, :p2, :p6] p6 - Propose 1 with action nil kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] p10 SET BALLOT VALUE 3 nil spare = [:p9, :p3, :p4, :p7, :p2, :p6] kill: leaders, followers = [:p10, :p1], [:p8, :p5, :p11] p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p3 - prepare from p1 p7 - prepare from p1 p6 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p9 - prepare from p1 p10 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - p1 is leader p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p9 - accept 1 1 {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 201} p9 - p1 is leader p6 - p1 is leader p7 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p10 - p1 is leader p3 - p1 is leader p7 - p1 is leader p4 - p1 is leader p9 - p10 is leader p6 - p10 is leader p3 - p10 is leader p7 - p10 is leader p4 - p10 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p9 - prepare from p2 p4 - prepare from p2 p7 - prepare from p2 p3 - prepare from p2 p6 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 201} p2 Try to run prepared p2 11 1 false p2 - prepared 1 2 1 {:val, 201} p2 Try to run prepared p2 11 2 false p2 - prepared 1 2 1 {:val, 201} p2 Try to run prepared p2 11 3 false p2 - prepared 1 2 1 {:val, 201} p2 Try to run prepared p2 11 4 false p2 - prepared 1 2 1 {:val, 201} p2 Try to run prepared p2 11 5 false p2 - prepared 1 2 1 {:val, 201} p2 Try to run prepared p2 11 6 false p2 SET BALLOT VALUE {:val, 201} p2 - accept 1 2 {:val, 201} p3 - accept 1 2 {:val, 201} p9 - accept 1 2 {:val, 201} p4 - accept 1 2 {:val, 201} p7 - accept 1 2 {:val, 201} p6 - accept 1 2 {:val, 201} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 decided 1 {:val, 201} p9 decided 1 {:val, 201} p3 decided 1 {:val, 201} p6 decided 1 {:val, 201} p4 decided 1 {:val, 201} p7 decided 1 {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p3 - p2 is leader p6 - p2 is leader p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p7 - p2 is leader p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p4 - p2 is leader p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p9 - p2 is leader p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p4: decided {:val, 201} p9: decided {:val, 201} p6: decided {:val, 201} p2: decided {:val, 201} p7: decided {:val, 201} p3: decided {:val, 201} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p3 Starting paxos for p7 Starting paxos for p4 Starting paxos for p6 Starting paxos for p1 Starting paxos for p5 Starting paxos for p8 Starting paxos for p10 Starting paxos for p9 Starting paxos for p11 :p7: started :p5: started :p1: started spare = [:p1, :p11, :p6, :p9, :p5, :p10] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil :p4: started :p6: started spare = [:p1, :p11, :p6, :p9, :p5, :p10] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] spare = [:p1, :p11, :p6, :p9, :p5, :p10] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] :p3: started :p9: started :p8: started p8 SET BALLOT VALUE 3 nil :p11: started p4 SET BALLOT VALUE 3 nil :p2: started p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p10: started p10 SET BALLOT VALUE 3 nil spare = [:p1, :p11, :p6, :p9, :p5, :p10] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] spare = [:p1, :p11, :p6, :p9, :p5, :p10] p1 - Propose 1 with action nil kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil spare = [:p1, :p11, :p6, :p9, :p5, :p10] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] spare = [:p1, :p11, :p6, :p9, :p5, :p10] spare = [:p1, :p11, :p6, :p9, :p5, :p10] spare = [:p1, :p11, :p6, :p9, :p5, :p10] spare = [:p1, :p11, :p6, :p9, :p5, :p10] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] p11 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] spare = [:p1, :p11, :p6, :p9, :p5, :p10] kill: leaders, followers = [:p2, :p7], [:p3, :p4, :p8] p5 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p6 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p11 - prepare from p1 p9 - prepare from p1 p6 - prepare from p1 p5 - prepare from p1 p10 - prepare from p1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p10 - p1 is leader p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p9 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p10 - accept 1 1 {:val, 201} p1 accepted 1 1 p11 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p1 accepted 1 1 p9 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 201} p6 decided 1 {:val, 201} p11 decided 1 {:val, 201} p9 decided 1 {:val, 201} p10 decided 1 {:val, 201} p5 decided 1 {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p9: decided {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p6: decided {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p11: decided {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p10: decided {:val, 201} p1: decided {:val, 201} p11 - p1 is leader p5: decided {:val, 201} p10: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p6 Starting paxos for p9 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 Starting paxos for p11 Starting paxos for p7 Starting paxos for p10 Starting paxos for p8 Starting paxos for p3 Starting paxos for p2 :p9: started :p6: started :p1: started :p5: started :p4: started :p7: started :p11: started :p3: started :p10: started :p2: started :p8: started spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] spare = [:p11, :p7, :p10, :p8, :p3, :p2] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] kill: leaders, followers = [:p6, :p9], [:p1, :p4, :p5] p9 - Propose 1 with action nil p6 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p11 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 - p10 is leader p7 - p10 is leader p10 - p10 is leader p8 - p10 is leader p2 - p10 is leader p3 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p11 - prepare from p10 p3 - prepare from p10 p8 - prepare from p10 p2 - prepare from p10 p7 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p3 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p8 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p11 decided 1 {:val, 201} p10 decided 1 {:val, 201} p2 decided 1 {:val, 201} p7 decided 1 {:val, 201} p3 decided 1 {:val, 201} p8 decided 1 {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p7: decided {:val, 201} p8: decided {:val, 201} p3: decided {:val, 201} p10: decided {:val, 201} p11: decided {:val, 201} p2: decided {:val, 201} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p1 Starting paxos for p10 Starting paxos for p3 Starting paxos for p6 Starting paxos for p9 Starting paxos for p11 Starting paxos for p8 Starting paxos for p7 Starting paxos for p5 Starting paxos for p4 Starting paxos for p2 :p1: started :p10: started :p3: started :p6: started :p9: started :p11: started :p8: started :p7: started :p5: started :p4: started :p2: started spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] spare = [:p11, :p8, :p7, :p5, :p4, :p2] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] kill: leaders, followers = [:p1, :p10], [:p3, :p6, :p9] p1 - Propose 1 with action nil p10 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p11 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 - p1 is leader p7 - p1 is leader p8 - p1 is leader p5 - p1 is leader p4 - p1 is leader p2 - p1 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p11 - prepare from p11 p4 - prepare from p11 p2 - prepare from p11 p8 - prepare from p11 p7 - prepare from p11 p5 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 201} p2 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p8 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 decided 1 {:val, 201} p8 decided 1 {:val, 201} p7 decided 1 {:val, 201} p5 decided 1 {:val, 201} p4 decided 1 {:val, 201} p2 decided 1 {:val, 201} p7 - p11 is leader p5 - p11 is leader p4 - p11 is leader p8 - p11 is leader p2 - p11 is leader p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p2: decided {:val, 201} p11: decided {:val, 201} p7: decided {:val, 201} p4: decided {:val, 201} p8: decided {:val, 201} p5: decided {:val, 201} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p9 Starting paxos for p7 Starting paxos for p3 Starting paxos for p5 Starting paxos for p10 Starting paxos for p8 Starting paxos for p6 Starting paxos for p1 Starting paxos for p11 Starting paxos for p4 :p2: started :p10: started :p9: started :p8: started :p7: started :p3: started :p5: started :p6: started :p1: started :p11: started :p4: started spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] spare = [:p10, :p8, :p6, :p1, :p11, :p4] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] kill: leaders, followers = [:p2, :p9], [:p7, :p3, :p5] p2 - Propose 1 with action nil p9 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 - p1 is leader p8 - p1 is leader p1 - p1 is leader p6 - p1 is leader p4 - p1 is leader p11 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p8 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 204} p1 decided 1 {:val, 204} p10 decided 1 {:val, 204} p4 decided 1 {:val, 204} p8 decided 1 {:val, 204} p11 decided 1 {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p11: decided {:val, 204} p6: decided {:val, 204} p8: decided {:val, 204} p1: decided {:val, 204} p4: decided {:val, 204} p10: decided {:val, 204} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p2 Starting paxos for p10 Starting paxos for p9 Starting paxos for p7 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 Starting paxos for p11 Starting paxos for p8 Starting paxos for p6 Starting paxos for p4 :p2: started :p10: started :p9: started :p7: started :p1: started :p3: started :p5: started :p11: started :p8: started :p6: started :p4: started spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] spare = [:p3, :p5, :p11, :p8, :p6, :p4] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] kill: leaders, followers = [:p2, :p10], [:p9, :p7, :p1] p2 - Propose 1 with action nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - p10 is leader p3 - p10 is leader p11 - p10 is leader p8 - p10 is leader p6 - p10 is leader p4 - p10 is leader p3 - p11 is leader p5 - p11 is leader p6 - p11 is leader p8 - p11 is leader p11 - p11 is leader p4 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p3 - prepare from p11 p8 - prepare from p11 p5 - prepare from p11 p11 - prepare from p11 p6 - prepare from p11 p4 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 210} p6 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p6 decided 1 {:val, 210} p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p11 decided 1 {:val, 210} p8 decided 1 {:val, 210} p5 decided 1 {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p3: decided {:val, 210} p4: decided {:val, 210} p6: decided {:val, 210} p8: decided {:val, 210} p11: decided {:val, 210} p5: decided {:val, 210} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p11 Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p8 Starting paxos for p2 Starting paxos for p6 Starting paxos for p1 Starting paxos for p5 Starting paxos for p3 Starting paxos for p4 :p11: started :p7: started :p10: started :p9: started :p8: started :p2: started :p6: started :p1: started :p5: started :p3: started :p4: started spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] spare = [:p2, :p6, :p1, :p5, :p3, :p4] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] kill: leaders, followers = [:p11, :p7], [:p10, :p9, :p8] p11 - Propose 1 with action nil p7 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p5 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - p1 is leader p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p6 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 206} p2 decided 1 {:val, 206} p5 decided 1 {:val, 206} p3 decided 1 {:val, 206} p1 decided 1 {:val, 206} p4 decided 1 {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p6: decided {:val, 206} p5: decided {:val, 206} p1: decided {:val, 206} p3: decided {:val, 206} p4: decided {:val, 206} p2: decided {:val, 206} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p11 Starting paxos for p10 Starting paxos for p8 Starting paxos for p4 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 Starting paxos for p9 Starting paxos for p1 :p11: started :p10: started :p8: started :p4: started :p6: started :p7: started :p3: started :p2: started :p5: started :p9: started :p1: started spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] spare = [:p7, :p3, :p2, :p5, :p9, :p1] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] kill: leaders, followers = [:p11, :p10], [:p8, :p4, :p6] p11 - Propose 1 with action nil p10 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p7 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p5 - p1 is leader p9 - p1 is leader p2 - p1 is leader p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p2 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 208} p2 decided 1 {:val, 208} p7 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p1 decided 1 {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p3: decided {:val, 208} p5: decided {:val, 208} p9: decided {:val, 208} p2: decided {:val, 208} p7: decided {:val, 208} p1: decided {:val, 208} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p10 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 Starting paxos for p8 Starting paxos for p9 Starting paxos for p7 Starting paxos for p1 Starting paxos for p11 Starting paxos for p2 Starting paxos for p6 :p10: started :p3: started :p4: started :p5: started :p8: started :p9: started :p7: started :p1: started :p11: started :p2: started :p6: started spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] spare = [:p9, :p7, :p1, :p11, :p2, :p6] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] kill: leaders, followers = [:p10, :p3], [:p4, :p5, :p8] p10 - Propose 1 with action nil p3 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 - p1 is leader p7 - p1 is leader p1 - p1 is leader p11 - p1 is leader p2 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p7 - prepare from p1 p11 - prepare from p1 p1 - prepared 1 1 nil nil p2 - prepare from p1 p6 - prepare from p1 Probably recieved this before preare came to self sending with delay p1 - prepared 1 1 nil nil Probably recieved this before preare came to self sending with delay p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p7 - accept 1 1 {:val, 207} p6 - accept 1 1 {:val, 207} p1 accepted 1 1 p9 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 207} p9 decided 1 {:val, 207} p1 decided 1 {:val, 207} p11 decided 1 {:val, 207} p6 decided 1 {:val, 207} p2 decided 1 {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 207} p6: decided {:val, 207} p9: decided {:val, 207} p2: decided {:val, 207} p1: decided {:val, 207} p7: decided {:val, 207} p11: decided {:val, 207} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p8 Starting paxos for p2 Starting paxos for p7 Starting paxos for p1 Starting paxos for p4 Starting paxos for p6 Starting paxos for p3 Starting paxos for p10 Starting paxos for p11 Starting paxos for p5 Starting paxos for p9 :p8: started :p2: started :p7: started :p1: started :p4: started :p6: started :p3: started :p10: started :p11: started :p5: started :p9: started spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] spare = [:p6, :p3, :p10, :p11, :p5, :p9] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p8, :p2], [:p7, :p1, :p4] p8 - Propose 1 with action nil p2 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p6 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 - p10 is leader p3 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p6 - prepare from p10 p11 - prepare from p10 p3 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p9 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p11 - p10 is leader p5 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 202} p10 - accept 1 1 {:val, 202} p10 accepted 1 1 p9 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p10 accepted 1 1 p3 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p3 decided 1 {:val, 202} p5 decided 1 {:val, 202} p11 decided 1 {:val, 202} p10 decided 1 {:val, 202} p9 decided 1 {:val, 202} p6 decided 1 {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p5: decided {:val, 202} p10: decided {:val, 202} p3: decided {:val, 202} p11: decided {:val, 202} p6: decided {:val, 202} p9: decided {:val, 202} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p9 Starting paxos for p8 Starting paxos for p5 Starting paxos for p10 Starting paxos for p11 Starting paxos for p1 Starting paxos for p7 Starting paxos for p3 Starting paxos for p6 Starting paxos for p4 Starting paxos for p2 :p8: started :p9: started :p10: started :p5: started :p11: started :p1: started :p7: started :p6: started :p2: started :p3: started :p4: started spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] spare = [:p1, :p7, :p3, :p6, :p4, :p2] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] kill: leaders, followers = [:p9, :p8], [:p5, :p10, :p11] p8 - Propose 1 with action nil p9 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - p1 is leader p3 - p1 is leader p6 - p1 is leader p7 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p7 - prepare from p1 p1 Try to run prepared p4 - prepare from p1 p6 - prepare from p1 p2 - prepare from p1 p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p1 accepted 1 1 p2 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 208} p6 decided 1 {:val, 208} p4 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p1 decided 1 {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p3: decided {:val, 208} p7: decided {:val, 208} p6: decided {:val, 208} p4: decided {:val, 208} p2: decided {:val, 208} p1: decided {:val, 208} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 Starting paxos for p11 Starting paxos for p10 Starting paxos for p8 Starting paxos for p4 Starting paxos for p6 Starting paxos for p7 Starting paxos for p5 Starting paxos for p9 :p2: started :p3: started :p11: started :p1: started :p10: started :p8: started :p4: started :p6: started :p7: started :p5: started :p9: started spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] spare = [:p8, :p4, :p6, :p7, :p5, :p9] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] kill: leaders, followers = [:p2, :p1], [:p3, :p11, :p10] p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p8 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 - p1 is leader p7 - p1 is leader p5 - p1 is leader p9 - p1 is leader p6 - p1 is leader p4 - p1 is leader p8 - p4 is leader p7 - p4 is leader p9 - p4 is leader p6 - p4 is leader p5 - p4 is leader p4 - p4 is leader p4 sending all prepare 1 1 p4 SET BALLOT VALUE 2 nil p6 - prepare from p4 p8 - prepare from p4 p9 - prepare from p4 p5 - prepare from p4 p7 - prepare from p4 p4 - prepare from p4 p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 1 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 2 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 3 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 4 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 5 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 6 false p4 SET BALLOT VALUE {:val, 205} p8 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p7 - accept 1 1 {:val, 205} p9 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p8 decided 1 {:val, 205} p7 decided 1 {:val, 205} p6 decided 1 {:val, 205} p9 decided 1 {:val, 205} p4 decided 1 {:val, 205} p5 decided 1 {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p8: decided {:val, 205} p9: decided {:val, 205} p5: decided {:val, 205} p4: decided {:val, 205} p7: decided {:val, 205} p6: decided {:val, 205} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p8 Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 Starting paxos for p4 Starting paxos for p6 Starting paxos for p11 :p11: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] :p10: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] :p8: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil :p3: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] :p5: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] :p9: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p4: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] :p6: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] :p2: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] p7 SET BALLOT VALUE 3 nil :p1: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] :p7: started with [:p5, :p10, :p3, :p9, :p8, :p2, :p6, :p1, :p11, :p7, :p4] p2 - Propose 1 with action nil p7 - p1 is leader p10 - p1 is leader p2 - p1 is leader p1 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p4 - p1 is leader p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p4 - prepare from p1 p11 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p5 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p5 - p1 is leader p7 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 210} p10 decided 1 {:val, 210} p11 decided 1 {:val, 210} p2 decided 1 {:val, 210} p4 decided 1 {:val, 210} p6 decided 1 {:val, 210} p7 decided 1 {:val, 210} p1 accepted 1 1 p1 decided 1 {:val, 210} p11 - p1 is leader p2: decided {:val, 210} p11: decided {:val, 210} p4: decided {:val, 210} p6: decided {:val, 210} p1: decided {:val, 210} p7: decided {:val, 210} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p10 Starting paxos for p8 Starting paxos for p1 Starting paxos for p7 Starting paxos for p4 Starting paxos for p5 Starting paxos for p9 Starting paxos for p6 Starting paxos for p3 Starting paxos for p11 :p5: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] :p9: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] :p11: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] :p1: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p7: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p4: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p10: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] :p6: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] :p8: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] :p2: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] :p3: started with [:p2, :p11, :p6, :p3, :p7, :p10, :p4, :p9, :p8, :p5, :p1] p10 - Propose 1 with action nil p2 - Propose 1 with action nil p8 - p1 is leader p10 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p9 - prepare from p1 p8 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p5 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p10 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p4 - p1 is leader p1 accepted 1 1 p5 - accept 1 1 {:val, 210} p1 accepted 1 1 p9 - accept 1 1 {:val, 210} p1 accepted 1 1 p8 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 decided 1 {:val, 210} p5 decided 1 {:val, 210} p9 decided 1 {:val, 210} p4 decided 1 {:val, 210} p10 decided 1 {:val, 210} p8 decided 1 {:val, 210} p9 - p1 is leader p4: decided {:val, 210} p8: decided {:val, 210} p10: decided {:val, 210} p5: decided {:val, 210} p9: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p8 Starting paxos for p2 Starting paxos for p5 Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p6 Starting paxos for p11 :p4: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] :p10: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] :p1: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] :p8: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p2: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] :p9: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil :p3: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] :p5: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] p7 SET BALLOT VALUE 3 nil :p11: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] :p6: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] p11 - Propose 1 with action nil :p7: started with [:p8, :p11, :p1, :p2, :p10, :p9, :p3, :p7, :p4, :p5, :p6] p7 - p11 is leader p5 - p11 is leader p9 - p11 is leader p4 - p11 is leader p6 - p11 is leader p3 - p11 is leader p7 - p3 is leader p5 - p3 is leader p9 - p3 is leader p4 - p3 is leader p6 - p3 is leader p3 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p6 - prepare from p3 p4 - prepare from p3 p9 - prepare from p3 p5 - prepare from p3 p7 - prepare from p3 p3 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 3 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 4 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 5 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 6 false p3 SET BALLOT VALUE {:val, 209} p9 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p3 accepted 1 1 p6 - accept 1 1 {:val, 209} p7 - accept 1 1 {:val, 209} p3 accepted 1 1 p3 accepted 1 1 p5 - accept 1 1 {:val, 209} p3 accepted 1 1 p3 accepted 1 1 p4 - accept 1 1 {:val, 209} p3 accepted 1 1 p3 decided 1 {:val, 209} p9 decided 1 {:val, 209} p7 decided 1 {:val, 209} p5 decided 1 {:val, 209} p6 decided 1 {:val, 209} p4 decided 1 {:val, 209} p9: decided {:val, 209} p4: decided {:val, 209} p5: decided {:val, 209} p3: decided {:val, 209} p6: decided {:val, 209} p7: decided {:val, 209} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p7 Starting paxos for p5 Starting paxos for p10 Starting paxos for p6 Starting paxos for p8 Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p9 Starting paxos for p11 :p11: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p10: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p1: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p2: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p9: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p3: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p5: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p4: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] p2 - Propose 1 with action nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p6: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] :p8: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p7: started with [:p2, :p3, :p10, :p8, :p11, :p4, :p6, :p7, :p9, :p5, :p1] p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p7 - p1 is leader p5 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p5 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p3 - p1 is leader p4 - accept 1 1 {:val, 208} p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p4 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p4 decided 1 {:val, 208} p2 decided 1 {:val, 208} p3 decided 1 {:val, 208} p6 decided 1 {:val, 208} p5 decided 1 {:val, 208} p9 - accept 1 1 {:val, 208} p9 - p1 is leader p1 accepted 1 1 p9 decided 1 {:val, 208} p7 - accept 1 1 {:val, 208} p7 decided 1 {:val, 208} p1 accepted 1 1 p4: decided {:val, 208} p1: decided {:val, 208} p9: decided {:val, 208} p5: decided {:val, 208} p6: decided {:val, 208} p7: decided {:val, 208} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p2 Starting paxos for p10 Starting paxos for p7 Starting paxos for p4 Starting paxos for p6 Starting paxos for p1 Starting paxos for p8 Starting paxos for p3 Starting paxos for p9 Starting paxos for p11 :p5: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] :p11: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] :p7: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] :p9: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] :p6: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil :p2: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil :p8: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p3: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] :p1: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] :p4: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p10: started with [:p10, :p2, :p8, :p11, :p6, :p7, :p5, :p1, :p3, :p9, :p4] p10 - Propose 1 with action nil p5 - p1 is leader p2 - p1 is leader p10 - p1 is leader p7 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p7 - prepare from p1 p10 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p9 - p1 is leader p7 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p9 - accept 1 1 {:val, 203} p1 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p3 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 203} p5 decided 1 {:val, 203} p1 decided 1 {:val, 203} p3 decided 1 {:val, 203} p9 decided 1 {:val, 203} p4 decided 1 {:val, 203} p7: decided {:val, 203} p5: decided {:val, 203} p9: decided {:val, 203} p3: decided {:val, 203} p4: decided {:val, 203} p1: decided {:val, 203} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p9 Starting paxos for p8 Starting paxos for p6 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p10 Starting paxos for p2 Starting paxos for p5 Starting paxos for p7 Starting paxos for p11 :p7: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p11: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p9: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p8: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] p11 - Propose 1 with action nil :p3: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] p11 SET BALLOT VALUE 3 nil :p4: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p5: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p1: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p2: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p6: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] :p10: started with [:p6, :p4, :p9, :p1, :p10, :p11, :p2, :p5, :p8, :p3, :p7] p8 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 - p1 is leader p6 - p1 is leader p3 - p1 is leader p4 - p1 is leader p2 - p1 is leader p5 - p1 is leader p7 - p1 is leader p11 - p1 is leader p8 - p11 is leader p3 - p11 is leader p2 - p11 is leader p5 - p11 is leader p7 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p8 - prepare from p11 p7 - prepare from p11 p3 - prepare from p11 p2 - prepare from p11 p5 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 209} p7 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p3 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p2 decided 1 {:val, 209} p7 decided 1 {:val, 209} p3 decided 1 {:val, 209} p5 decided 1 {:val, 209} p11: decided {:val, 209} p7: decided {:val, 209} p8: decided {:val, 209} p3: decided {:val, 209} p2: decided {:val, 209} p5: decided {:val, 209} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p1 Starting paxos for p5 Starting paxos for p10 Starting paxos for p7 Starting paxos for p9 Starting paxos for p4 Starting paxos for p2 Starting paxos for p6 Starting paxos for p3 Starting paxos for p8 Starting paxos for p11 :p2: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] :p8: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] :p7: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] :p10: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] :p5: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] p5 - Propose 1 with action nil p7 - Propose 1 with action nil :p11: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] :p6: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p3: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] :p1: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p4: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p9: started with [:p5, :p1, :p9, :p3, :p10, :p7, :p2, :p8, :p6, :p11, :p4] p4 SET BALLOT VALUE 3 nil p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p2 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p7 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p6 - accept 1 1 {:val, 210} p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p11 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p5 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 accepted 1 1 p8 - accept 1 1 {:val, 210} p1 accepted 1 1 p4 - accept 1 1 {:val, 210} p1 accepted 1 1 p5 decided 1 {:val, 210} p6 decided 1 {:val, 210} p4 decided 1 {:val, 210} p2 decided 1 {:val, 210} p8 decided 1 {:val, 210} p7 decided 1 {:val, 210} p11 decided 1 {:val, 210} p1 decided 1 {:val, 210} p6 - p1 is leader p7 - p1 is leader p2 - p1 is leader p4 - p1 is leader p8 - p1 is leader p7: decided {:val, 210} p11 - p1 is leader p2: decided {:val, 210} p8: decided {:val, 210} p11: decided {:val, 210} p6: decided {:val, 210} p4: decided {:val, 210} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p5 Starting paxos for p9 Starting paxos for p10 Starting paxos for p1 Starting paxos for p3 Starting paxos for p8 Starting paxos for p6 Starting paxos for p2 Starting paxos for p4 Starting paxos for p7 Starting paxos for p11 :p10: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] :p7: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] :p11: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] :p4: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p5: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p2: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p8: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] p1 SET BALLOT VALUE 3 nil :p3: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] :p1: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] :p9: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] p8 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p6: started with [:p7, :p5, :p9, :p4, :p3, :p8, :p11, :p2, :p6, :p1, :p10] p5 - p1 is leader p10 - p1 is leader p8 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p10 - prepare from p1 p7 - prepare from p1 p2 - prepare from p1 p8 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p7 - p1 is leader p5 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p1 SET BALLOT VALUE {:val, 209} p2 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p6 - accept 1 1 {:val, 209} p1 - prepared 1 1 nil nil p7 - accept 1 1 {:val, 209} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p10 - accept 1 1 {:val, 209} p1 accepted 1 1 p11 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p5 decided 1 {:val, 209} p10 decided 1 {:val, 209} p1 accepted 1 1 p2 decided 1 {:val, 209} p7 decided 1 {:val, 209} p1 decided 1 {:val, 209} p8: decided {:val, 209} p11 - p1 is leader p10: decided {:val, 209} p11: decided {:val, 209} p2: decided {:val, 209} p1: decided {:val, 209} p6: decided {:val, 209} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p9 Starting paxos for p6 Starting paxos for p1 Starting paxos for p5 Starting paxos for p3 Starting paxos for p2 Starting paxos for p8 Starting paxos for p7 Starting paxos for p4 Starting paxos for p10 Starting paxos for p11 :p9: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] :p4: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p9 - Propose 1 with action nil :p8: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p9 SET BALLOT VALUE 3 nil :p10: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] :p1: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p11: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p6: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p2 SET BALLOT VALUE 3 nil :p2: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] :p3: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p1 SET BALLOT VALUE 3 nil :p7: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p5 SET BALLOT VALUE 3 nil :p5: started with [:p5, :p9, :p6, :p2, :p10, :p8, :p1, :p3, :p11, :p4, :p7] p5 - Propose 1 with action nil p4 - p1 is leader p3 - p1 is leader p8 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p4 - prepare from p1 p8 - prepare from p1 p11 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p7 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p8 - accept 1 1 {:val, 208} p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p7 - accept 1 1 {:val, 208} p1 accepted 1 1 p3 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p11 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p11 decided 1 {:val, 208} p4 decided 1 {:val, 208} p7 decided 1 {:val, 208} p3 decided 1 {:val, 208} p8 decided 1 {:val, 208} p11 - p1 is leader p8: decided {:val, 208} p4: decided {:val, 208} p1: decided {:val, 208} p11: decided {:val, 208} p3: decided {:val, 208} p7: decided {:val, 208} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p5 Starting paxos for p6 Starting paxos for p8 Starting paxos for p4 Starting paxos for p7 Starting paxos for p10 Starting paxos for p1 Starting paxos for p9 Starting paxos for p2 Starting paxos for p11 :p9: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] :p10: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil :p1: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] :p3: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] :p2: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] :p8: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] p6 SET BALLOT VALUE 3 nil :p5: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] :p7: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p4: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] p11 SET BALLOT VALUE 3 nil :p11: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p6: started with [:p8, :p10, :p3, :p9, :p6, :p5, :p7, :p11, :p4, :p1, :p2] p8 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p2 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p7 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p7 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p2 - accept 1 1 {:val, 208} p2 - p1 is leader p1 accepted 1 1 p11 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p5 decided 1 {:val, 208} p7 decided 1 {:val, 208} p11 decided 1 {:val, 208} p2 decided 1 {:val, 208} p4 decided 1 {:val, 208} p11 - p1 is leader p5: decided {:val, 208} p1: decided {:val, 208} p7: decided {:val, 208} p4: decided {:val, 208} p11: decided {:val, 208} p2: decided {:val, 208} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p6 Starting paxos for p10 Starting paxos for p5 Starting paxos for p11 Starting paxos for p9 Starting paxos for p7 Starting paxos for p8 Starting paxos for p2 :p4: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p10: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p3: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p11: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p6: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p1: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p5: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p9: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p8: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p7: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] :p2: started with [:p4, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p7, :p8, :p2] p4 - Propose 1 with action nil p3 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p8 - p11 is leader p9 - p11 is leader p11 - p11 is leader p7 - p11 is leader p5 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p5 - prepare from p11 p11 - prepare from p11 p2 - prepare from p11 p8 - prepare from p11 p9 - prepare from p11 p7 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p5 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p11 SET BALLOT VALUE {:val, 204} p7 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p2 - p11 is leader p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p7 decided 1 {:val, 204} p5 decided 1 {:val, 204} p9 decided 1 {:val, 204} p11 decided 1 {:val, 204} p8 decided 1 {:val, 204} p2 decided 1 {:val, 204} p8: decided {:val, 204} p11: decided {:val, 204} p2: decided {:val, 204} p7: decided {:val, 204} p9: decided {:val, 204} p5: decided {:val, 204} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p3 Starting paxos for p9 Starting paxos for p10 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 Starting paxos for p6 Starting paxos for p8 Starting paxos for p11 Starting paxos for p1 Starting paxos for p7 :p3: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p10: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p9: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p4: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p11: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p2: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p5: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p1: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p6: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p8: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] :p7: started with [:p3, :p9, :p10, :p4, :p2, :p5, :p6, :p8, :p11, :p1, :p7] p3 - Propose 1 with action nil p9 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p8 - p1 is leader p6 - p1 is leader p11 - p1 is leader p7 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p1 - prepared 1 1 nil nil p7 - prepare from p1 p8 - prepare from p1 p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p6 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 204} p8 decided 1 {:val, 204} p7 decided 1 {:val, 204} p5 decided 1 {:val, 204} p6 decided 1 {:val, 204} p11 decided 1 {:val, 204} p1: decided {:val, 204} p11: decided {:val, 204} p6: decided {:val, 204} p7: decided {:val, 204} p8: decided {:val, 204} p5: decided {:val, 204} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p7 Starting paxos for p8 Starting paxos for p4 Starting paxos for p6 Starting paxos for p2 Starting paxos for p11 Starting paxos for p10 Starting paxos for p1 Starting paxos for p5 Starting paxos for p3 Starting paxos for p9 :p7: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p11: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p4: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p1: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p2: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p8: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p10: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p6: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p5: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p3: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] :p9: started with [:p7, :p4, :p2, :p11, :p10, :p1, :p5, :p3, :p9, :p8, :p6] p7 - Propose 1 with action nil p4 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p6 - p1 is leader p1 - p1 is leader p9 - p1 is leader p5 - p1 is leader p3 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p8 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p6 - prepare from p1 p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p1 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 accepted 1 1 p9 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p8 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 205} p9 decided 1 {:val, 205} p8 decided 1 {:val, 205} p6 decided 1 {:val, 205} p3 decided 1 {:val, 205} p5 decided 1 {:val, 205} p9: decided {:val, 205} p5: decided {:val, 205} p6: decided {:val, 205} p8: decided {:val, 205} p3: decided {:val, 205} p1: decided {:val, 205} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p6 Starting paxos for p2 Starting paxos for p10 Starting paxos for p3 Starting paxos for p8 Starting paxos for p1 Starting paxos for p11 Starting paxos for p4 Starting paxos for p7 Starting paxos for p5 Starting paxos for p9 :p2: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p9: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p10: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p3: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p1: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p8: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p11: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p4: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p7: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p5: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] :p6: started with [:p2, :p10, :p3, :p8, :p1, :p11, :p4, :p7, :p5, :p6, :p9] p2 - Propose 1 with action nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p6 - p10 is leader p11 - p10 is leader p9 - p10 is leader p7 - p10 is leader p4 - p10 is leader p5 - p10 is leader p11 - p11 is leader p6 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p7 - prepare from p11 p6 - prepare from p11 p9 - prepare from p11 p4 - prepare from p11 p5 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p5 - p11 is leader p11 Try to run prepared p9 - p11 is leader p4 - p11 is leader p11 11 3 false p7 - p11 is leader p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 201} p6 - accept 1 1 {:val, 201} p9 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p5 decided 1 {:val, 201} p4 decided 1 {:val, 201} p11 decided 1 {:val, 201} p6 decided 1 {:val, 201} p9 decided 1 {:val, 201} p7 decided 1 {:val, 201} p11: decided {:val, 201} p9: decided {:val, 201} p7: decided {:val, 201} p4: decided {:val, 201} p5: decided {:val, 201} p6: decided {:val, 201} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p9 Starting paxos for p8 Starting paxos for p10 Starting paxos for p6 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p11 Starting paxos for p4 Starting paxos for p5 Starting paxos for p7 :p1: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p9: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p4: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p8: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p10: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p5: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p7: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p6: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p3: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p2: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] :p11: started with [:p9, :p8, :p10, :p6, :p3, :p2, :p1, :p11, :p4, :p5, :p7] p9 - Propose 1 with action nil p8 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p1 - p1 is leader p2 - p1 is leader p11 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p11 - prepare from p1 p5 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p4 - p1 is leader p5 - p1 is leader p1 - prepared 1 1 nil nil p7 - p1 is leader p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p7 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 204} p11 decided 1 {:val, 204} p4 decided 1 {:val, 204} p7 decided 1 {:val, 204} p5 decided 1 {:val, 204} p1 decided 1 {:val, 204} p5: decided {:val, 204} p1: decided {:val, 204} p4: decided {:val, 204} p7: decided {:val, 204} p11: decided {:val, 204} p2: decided {:val, 204} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p3 Starting paxos for p7 Starting paxos for p6 Starting paxos for p4 Starting paxos for p2 Starting paxos for p10 Starting paxos for p5 Starting paxos for p1 Starting paxos for p8 Starting paxos for p11 Starting paxos for p9 :p3: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p7: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p2: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p10: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p4: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p5: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p1: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p8: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p9: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p11: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] :p6: started with [:p3, :p7, :p4, :p2, :p10, :p5, :p1, :p8, :p11, :p9, :p6] p3 - Propose 1 with action nil p7 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p6 - p1 is leader p1 - p1 is leader p11 - p1 is leader p5 - p1 is leader p9 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p11 - prepare from p1 p6 - prepare from p1 p5 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p5 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 204} p11 decided 1 {:val, 204} p8 decided 1 {:val, 204} p9 decided 1 {:val, 204} p6 decided 1 {:val, 204} p1 decided 1 {:val, 204} p1: decided {:val, 204} p11: decided {:val, 204} p9: decided {:val, 204} p6: decided {:val, 204} p8: decided {:val, 204} p5: decided {:val, 204} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p1 Starting paxos for p11 Starting paxos for p7 Starting paxos for p4 Starting paxos for p10 Starting paxos for p2 Starting paxos for p9 Starting paxos for p8 Starting paxos for p3 Starting paxos for p6 Starting paxos for p5 :p10: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p1: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p11: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p9: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p7: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p8: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p4: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p3: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p6: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p2: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] :p5: started with [:p1, :p11, :p7, :p4, :p10, :p2, :p9, :p8, :p3, :p6, :p5] p1 - Propose 1 with action nil p11 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p5 - p1 is leader p9 - p1 is leader p6 - p1 is leader p3 - p1 is leader p8 - p1 is leader p2 - p1 is leader p8 - p2 is leader p2 - p2 is leader p5 - p2 is leader p6 - p2 is leader p3 - p2 is leader p9 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p8 - prepare from p2 p9 - prepare from p2 p6 - prepare from p2 p3 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 4 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 5 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 6 false p2 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p9 decided 1 {:val, 204} p8 decided 1 {:val, 204} p3 decided 1 {:val, 204} p6 decided 1 {:val, 204} p2 decided 1 {:val, 204} p5 decided 1 {:val, 204} p2: decided {:val, 204} p3: decided {:val, 204} p8: decided {:val, 204} p6: decided {:val, 204} p9: decided {:val, 204} p5: decided {:val, 204} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p4 Starting paxos for p10 Starting paxos for p11 Starting paxos for p6 Starting paxos for p7 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 Starting paxos for p9 Starting paxos for p8 :p4: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p11: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p10: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p2: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p7: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p9: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p3: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p1: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p5: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p8: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] :p6: started with [:p4, :p10, :p11, :p7, :p2, :p3, :p5, :p9, :p8, :p6, :p1] p4 - Propose 1 with action nil p10 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p6 - p1 is leader p5 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p8 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p9 - p1 is leader p8 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p5 - accept 1 1 {:val, 202} p9 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p8 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p8 decided 1 {:val, 202} p3 decided 1 {:val, 202} p5 decided 1 {:val, 202} p9 decided 1 {:val, 202} p6 decided 1 {:val, 202} p9: decided {:val, 202} p8: decided {:val, 202} p1: decided {:val, 202} p5: decided {:val, 202} p6: decided {:val, 202} p3: decided {:val, 202} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p5 Starting paxos for p11 Starting paxos for p10 Starting paxos for p2 Starting paxos for p7 Starting paxos for p8 Starting paxos for p6 Starting paxos for p3 Starting paxos for p9 Starting paxos for p1 Starting paxos for p4 :p11: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p5: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p7: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p8: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p2: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p6: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p3: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p9: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p1: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p4: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] :p10: started with [:p5, :p11, :p2, :p7, :p8, :p6, :p3, :p9, :p1, :p4, :p10] p11 - Propose 1 with action nil p5 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p4 - p1 is leader p9 - p1 is leader p10 - p1 is leader p3 - p1 is leader p1 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p6 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - prepare from p1 p1 11 1 false p1 - prepared 1 1 nil nil p10 - prepare from p1 p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p6 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 204} p1 decided 1 {:val, 204} p4 decided 1 {:val, 204} p3 decided 1 {:val, 204} p10 decided 1 {:val, 204} p9 decided 1 {:val, 204} p3: decided {:val, 204} p9: decided {:val, 204} p1: decided {:val, 204} p10: decided {:val, 204} p4: decided {:val, 204} p6: decided {:val, 204} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p7 Starting paxos for p5 Starting paxos for p6 Starting paxos for p11 Starting paxos for p2 Starting paxos for p8 Starting paxos for p3 Starting paxos for p4 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 :p7: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p8: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p6: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p11: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p4: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p3: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p1: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p10: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p9: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p5: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] :p2: started with [:p7, :p6, :p11, :p8, :p4, :p3, :p1, :p10, :p9, :p5, :p2] p7 - Propose 1 with action nil p6 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p5 - p1 is leader p2 - p1 is leader p9 - p1 is leader p1 - p1 is leader p10 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p10 - prepare from p1 p9 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p3 - accept 1 1 {:val, 202} p10 - accept 1 1 {:val, 202} p9 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1: decided {:val, 202} p1 decided 1 {:val, 202} p5 decided 1 {:val, 202} p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p10 decided 1 {:val, 202} p9 decided 1 {:val, 202} p3: decided {:val, 202} p9: decided {:val, 202} p10: decided {:val, 202} p5: decided {:val, 202} p2: decided {:val, 202} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p8 Starting paxos for p7 Starting paxos for p10 Starting paxos for p6 Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 Starting paxos for p9 Starting paxos for p5 Starting paxos for p4 Starting paxos for p11 :p1: started :p2: started :p4: started :p5: started spare = [:p2, :p7, :p4, :p3, :p5, :p10] kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] :p6: started :p8: started :p3: started spare = [:p2, :p7, :p4, :p3, :p5, :p10] :p11: started kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] p2 - Propose 1 with action nil spare = [:p2, :p7, :p4, :p3, :p5, :p10] p2 SET BALLOT VALUE 3 nil :p7: started :p9: started kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] :p10: started spare = [:p2, :p7, :p4, :p3, :p5, :p10] spare = [:p2, :p7, :p4, :p3, :p5, :p10] p3 SET BALLOT VALUE 3 nil spare = [:p2, :p7, :p4, :p3, :p5, :p10] p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil spare = [:p2, :p7, :p4, :p3, :p5, :p10] kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] spare = [:p2, :p7, :p4, :p3, :p5, :p10] p1 - Propose 1 with action nil kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] p8 SET BALLOT VALUE 3 nil spare = [:p2, :p7, :p4, :p3, :p5, :p10] kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] p8 - Propose 1 with action nil spare = [:p2, :p7, :p4, :p3, :p5, :p10] kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] spare = [:p2, :p7, :p4, :p3, :p5, :p10] kill: leaders, followers = [:p1, :p8], [:p6, :p11, :p9] p10 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p7 - p1 is leader p8 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p10 - prepare from p1 p7 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p10 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - p1 is leader p2 - p1 is leader p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p1 - prepared 1 1 nil nil p10 - accept 1 1 {:val, 206} p1 Try to run prepared p2 - accept 1 1 {:val, 206} p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p8 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p1 11 8 true p7 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p5 - p1 is leader p1 accepted 1 1 p4 - p1 is leader p1 accepted 1 1 p7 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 2 p10 SET BALLOT VALUE 2 nil p7 - prepare from p10 p2 - prepare from p10 p4 - prepare from p10 p5 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 2 1 {:val, 206} p10 Try to run prepared p10 11 1 false p10 - prepared 1 2 1 {:val, 206} p10 Try to run prepared p10 11 2 false p10 - prepared 1 2 1 {:val, 206} p10 Try to run prepared p10 11 3 false p10 - prepared 1 2 1 {:val, 206} p3 - p10 is leader p10 Try to run prepared p2 - p10 is leader p10 11 4 false p10 - prepared 1 2 1 {:val, 206} p10 Try to run prepared p10 11 5 false p10 - prepared 1 2 1 {:val, 206} p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 206} p5 - accept 1 2 {:val, 206} p2 - accept 1 2 {:val, 206} p7 - accept 1 2 {:val, 206} p4 - accept 1 2 {:val, 206} p3 - accept 1 2 {:val, 206} p10 - accept 1 2 {:val, 206} p10 accepted 1 2 p10 accepted 1 2 p10 accepted 1 2 p10 accepted 1 2 p10 accepted 1 2 p10 accepted 1 2 p2 decided 1 {:val, 206} p3 decided 1 {:val, 206} p7 decided 1 {:val, 206} p4 decided 1 {:val, 206} p5 decided 1 {:val, 206} p4 - p10 is leader p10 decided 1 {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p5 - p10 is leader p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p4: decided {:val, 206} p5: decided {:val, 206} p10: decided {:val, 206} p2: decided {:val, 206} p3: decided {:val, 206} p7: decided {:val, 206} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p8 Starting paxos for p5 Starting paxos for p9 Starting paxos for p6 Starting paxos for p4 Starting paxos for p7 Starting paxos for p1 Starting paxos for p10 Starting paxos for p2 Starting paxos for p3 Starting paxos for p11 :p8: started spare = [:p1, :p3, :p6, :p7, :p9, :p4] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] :p4: started p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p9: started p9 SET BALLOT VALUE 3 nil :p10: started spare = [:p1, :p3, :p6, :p7, :p9, :p4] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] p10 SET BALLOT VALUE 3 nil spare = [:p1, :p3, :p6, :p7, :p9, :p4] p4 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil spare = [:p1, :p3, :p6, :p7, :p9, :p4] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] p4 - Propose 1 with action nil :p7: started :p1: started :p5: started p11 SET BALLOT VALUE 3 nil :p6: started p6 SET BALLOT VALUE 3 nil :p2: started spare = [:p1, :p3, :p6, :p7, :p9, :p4] p3 SET BALLOT VALUE 3 nil spare = [:p1, :p3, :p6, :p7, :p9, :p4] spare = [:p1, :p3, :p6, :p7, :p9, :p4] :p3: started spare = [:p1, :p3, :p6, :p7, :p9, :p4] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] spare = [:p1, :p3, :p6, :p7, :p9, :p4] :p11: started kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] spare = [:p1, :p3, :p6, :p7, :p9, :p4] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] p5 - Propose 1 with action nil spare = [:p1, :p3, :p6, :p7, :p9, :p4] kill: leaders, followers = [:p8, :p5], [:p10, :p2, :p11] p1 - Propose 1 with action nil p5 - p1 is leader p9 - p1 is leader p4 - p1 is leader p6 - p1 is leader p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p3 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p3 - p1 is leader p1 SET BALLOT VALUE {:val, 206} p9 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p7 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p6 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 206} p6 decided 1 {:val, 206} p4 decided 1 {:val, 206} p7 decided 1 {:val, 206} p9 decided 1 {:val, 206} p5 decided 1 {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p1 decided 1 {:val, 206} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 206} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 206} p1: decided {:val, 206} p4: decided {:val, 206} p9: decided {:val, 206} p7: decided {:val, 206} p6: decided {:val, 206} p3: decided {:val, 206} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p4 Starting paxos for p9 Starting paxos for p8 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 Starting paxos for p10 Starting paxos for p11 :p10: started :p11: started :p4: started spare = [:p2, :p9, :p7, :p8, :p6, :p5] :p1: started :p2: started :p8: started kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] spare = [:p2, :p9, :p7, :p8, :p6, :p5] spare = [:p2, :p9, :p7, :p8, :p6, :p5] kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] p4 - Propose 1 with action nil p11 - Propose 1 with action nil :p5: started :p9: started spare = [:p2, :p9, :p7, :p8, :p6, :p5] kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil spare = [:p2, :p9, :p7, :p8, :p6, :p5] :p6: started spare = [:p2, :p9, :p7, :p8, :p6, :p5] :p7: started kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] :p3: started p2 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil spare = [:p2, :p9, :p7, :p8, :p6, :p5] kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil spare = [:p2, :p9, :p7, :p8, :p6, :p5] kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] spare = [:p2, :p9, :p7, :p8, :p6, :p5] spare = [:p2, :p9, :p7, :p8, :p6, :p5] p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] spare = [:p2, :p9, :p7, :p8, :p6, :p5] kill: leaders, followers = [:p4, :p11], [:p3, :p10, :p1] p5 - Propose 1 with action nil p2 - p1 is leader p4 - p1 is leader p8 - p1 is leader p9 - p1 is leader p7 - p1 is leader p6 - p1 is leader p5 - p1 is leader p2 - p11 is leader p8 - p11 is leader p9 - p11 is leader p7 - p11 is leader p6 - p11 is leader p5 - p11 is leader p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p7 - prepare from p2 p9 - prepare from p2 p8 - prepare from p2 p6 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 4 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 5 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 6 false p2 SET BALLOT VALUE {:val, 208} p6 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p2 accepted 1 1 p8 - accept 1 1 {:val, 208} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p9 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p2 accepted 1 1 p2 accepted 1 1 p9 decided 1 {:val, 208} p8 decided 1 {:val, 208} p6 decided 1 {:val, 208} p7 decided 1 {:val, 208} p5 decided 1 {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p8 - p2 is leader p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p9 - p2 is leader p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p2 decided 1 {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p7 - p2 is leader p6 - p2 is leader p5 - p2 is leader p5: decided {:val, 208} p2: decided {:val, 208} p8: decided {:val, 208} p6: decided {:val, 208} p7: decided {:val, 208} p9: decided {:val, 208} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p8 Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p4 Starting paxos for p5 Starting paxos for p6 Starting paxos for p1 Starting paxos for p3 Starting paxos for p11 :p4: started :p7: started :p11: started spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] p8 SET BALLOT VALUE 3 nil :p8: started p7 SET BALLOT VALUE 3 nil :p9: started p9 SET BALLOT VALUE 3 nil :p5: started p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p11, :p7, :p10, :p4] spare = [:p6, :p3, :p11, :p7, :p10, :p4] :p3: started p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] p3 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] :p1: started :p2: started :p6: started p10 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p11, :p7, :p10, :p4] p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] p6 SET BALLOT VALUE 3 nil :p10: started spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] p5 - Propose 1 with action nil spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] p2 - Propose 1 with action nil spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] spare = [:p6, :p3, :p11, :p7, :p10, :p4] kill: leaders, followers = [:p2, :p5], [:p8, :p9, :p1] p6 - Propose 1 with action nil p2 - p1 is leader p10 - p1 is leader p7 - p1 is leader p6 - p1 is leader p4 - p1 is leader p3 - p1 is leader p11 - p1 is leader p10 - p10 is leader p7 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p11 - prepare from p10 p6 - prepare from p10 p7 - prepare from p10 p4 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p6 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 207} p10 - accept 1 1 {:val, 207} p10 accepted 1 1 p6 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p10 accepted 1 1 p3 - accept 1 1 {:val, 207} p4 - p10 is leader p10 accepted 1 1 p10 accepted 1 1 p11 - accept 1 1 {:val, 207} p3 - p10 is leader p10 accepted 1 1 p7 - accept 1 1 {:val, 207} p10 accepted 1 1 p6 decided 1 {:val, 207} p7 decided 1 {:val, 207} p10 decided 1 {:val, 207} p11 decided 1 {:val, 207} p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p4: decided {:val, 207} p6: decided {:val, 207} p11 - p10 is leader p7: decided {:val, 207} p11: decided {:val, 207} p3: decided {:val, 207} p10: decided {:val, 207} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p8 Starting paxos for p2 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 Starting paxos for p6 Starting paxos for p3 Starting paxos for p7 Starting paxos for p5 Starting paxos for p4 Starting paxos for p11 :p8: started :p1: started :p9: started :p11: started :p2: started spare = [:p5, :p4, :p3, :p9, :p6, :p10] :p7: started :p4: started kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] :p10: started :p5: started p8 - Propose 1 with action nil :p3: started p8 SET BALLOT VALUE 3 nil spare = [:p5, :p4, :p3, :p9, :p6, :p10] spare = [:p5, :p4, :p3, :p9, :p6, :p10] spare = [:p5, :p4, :p3, :p9, :p6, :p10] spare = [:p5, :p4, :p3, :p9, :p6, :p10] spare = [:p5, :p4, :p3, :p9, :p6, :p10] kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] :p6: started kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] spare = [:p5, :p4, :p3, :p9, :p6, :p10] kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] spare = [:p5, :p4, :p3, :p9, :p6, :p10] p10 SET BALLOT VALUE 3 nil spare = [:p5, :p4, :p3, :p9, :p6, :p10] kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] p3 SET BALLOT VALUE 3 nil spare = [:p5, :p4, :p3, :p9, :p6, :p10] p5 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil spare = [:p5, :p4, :p3, :p9, :p6, :p10] kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] p4 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p11], [:p1, :p7, :p2] p11 - Propose 1 with action nil p8 - p1 is leader p10 - p1 is leader p9 - p1 is leader p6 - p1 is leader p3 - p1 is leader p5 - p1 is leader p4 - p1 is leader p11 - p1 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p10 - prepare from p10 p4 - prepare from p10 p3 - prepare from p10 p9 - prepare from p10 p6 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p9 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p5 - accept 1 1 {:val, 204} p10 SET BALLOT VALUE {:val, 204} p10 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p4 - accept 1 1 {:val, 204} p10 accepted 1 1 p6 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p6 - p10 is leader p10 accepted 1 1 p10 accepted 1 1 p3 - accept 1 1 {:val, 204} p3 - p10 is leader p10 accepted 1 1 p6 decided 1 {:val, 204} p3 decided 1 {:val, 204} p4 decided 1 {:val, 204} p9 decided 1 {:val, 204} p5 decided 1 {:val, 204} p5 - p10 is leader p10 decided 1 {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p4 - p10 is leader p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 204} p10: decided {:val, 204} p5: decided {:val, 204} p4: decided {:val, 204} p9: decided {:val, 204} p6: decided {:val, 204} p3: decided {:val, 204} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p10 Starting paxos for p9 Starting paxos for p7 Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p8 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p11 :p4: started spare = [:p9, :p6, :p11, :p4, :p3, :p8] kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] :p7: started :p10: started :p5: started :p2: started :p8: started :p6: started :p1: started :p9: started spare = [:p9, :p6, :p11, :p4, :p3, :p8] :p11: started spare = [:p9, :p6, :p11, :p4, :p3, :p8] kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] :p3: started kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] spare = [:p9, :p6, :p11, :p4, :p3, :p8] spare = [:p9, :p6, :p11, :p4, :p3, :p8] spare = [:p9, :p6, :p11, :p4, :p3, :p8] spare = [:p9, :p6, :p11, :p4, :p3, :p8] kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] spare = [:p9, :p6, :p11, :p4, :p3, :p8] kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] spare = [:p9, :p6, :p11, :p4, :p3, :p8] p7 - Propose 1 with action nil kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] p7 SET BALLOT VALUE 3 nil spare = [:p9, :p6, :p11, :p4, :p3, :p8] spare = [:p9, :p6, :p11, :p4, :p3, :p8] p10 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] p9 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil kill: leaders, followers = [:p7, :p10], [:p1, :p5, :p2] p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 - p1 is leader p7 - p1 is leader p6 - p1 is leader p8 - p1 is leader p4 - p1 is leader p3 - p1 is leader p11 - p1 is leader p9 - p10 is leader p6 - p10 is leader p8 - p10 is leader p4 - p10 is leader p3 - p10 is leader p11 - p10 is leader p9 - p11 is leader p6 - p11 is leader p8 - p11 is leader p4 - p11 is leader p3 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p9 - prepare from p11 p3 - prepare from p11 p6 - prepare from p11 p4 - prepare from p11 p8 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p8 - accept 1 1 {:val, 210} p9 - accept 1 1 {:val, 210} p11 SET BALLOT VALUE {:val, 210} p6 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p9 decided 1 {:val, 210} p11 decided 1 {:val, 210} p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p6 decided 1 {:val, 210} p8 decided 1 {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p8: decided {:val, 210} p9: decided {:val, 210} p4: decided {:val, 210} p6: decided {:val, 210} p3: decided {:val, 210} p11: decided {:val, 210} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p5 Starting paxos for p9 Starting paxos for p7 Starting paxos for p6 Starting paxos for p2 Starting paxos for p10 Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p8 Starting paxos for p11 :p6: started :p4: started :p3: started spare = [:p4, :p3, :p10, :p8, :p9, :p7] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] :p8: started :p5: started :p9: started spare = [:p4, :p3, :p10, :p8, :p9, :p7] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] spare = [:p4, :p3, :p10, :p8, :p9, :p7] :p7: started :p2: started :p10: started kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] :p1: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil spare = [:p4, :p3, :p10, :p8, :p9, :p7] spare = [:p4, :p3, :p10, :p8, :p9, :p7] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] spare = [:p4, :p3, :p10, :p8, :p9, :p7] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] :p11: started spare = [:p4, :p3, :p10, :p8, :p9, :p7] p1 SET BALLOT VALUE 3 nil spare = [:p4, :p3, :p10, :p8, :p9, :p7] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] spare = [:p4, :p3, :p10, :p8, :p9, :p7] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] p3 SET BALLOT VALUE 3 nil spare = [:p4, :p3, :p10, :p8, :p9, :p7] kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil spare = [:p4, :p3, :p10, :p8, :p9, :p7] p7 - Propose 1 with action nil kill: leaders, followers = [:p2, :p11], [:p6, :p1, :p5] p11 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p7 - p1 is leader p8 - p1 is leader p10 - p1 is leader p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p11 - p1 is leader p9 - p10 is leader p7 - p10 is leader p8 - p10 is leader p10 - p10 is leader p4 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p4 - prepare from p10 p7 - prepare from p10 p9 - prepare from p10 p10 - prepare from p10 p3 - prepare from p10 p8 - prepare from p10 p3 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p4 - accept 1 1 {:val, 204} p10 SET BALLOT VALUE {:val, 204} p9 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 204} p8 decided 1 {:val, 204} p4 decided 1 {:val, 204} p3 decided 1 {:val, 204} p9 decided 1 {:val, 204} p7 decided 1 {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 204} p7: decided {:val, 204} p4: decided {:val, 204} p3: decided {:val, 204} p9: decided {:val, 204} p8: decided {:val, 204} p10: decided {:val, 204} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p2 Starting paxos for p10 Starting paxos for p7 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 Starting paxos for p6 Starting paxos for p4 Starting paxos for p8 Starting paxos for p9 Starting paxos for p11 :p8: started :p10: started :p4: started :p9: started :p11: started spare = [:p1, :p4, :p11, :p9, :p8, :p2] kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] spare = [:p1, :p4, :p11, :p9, :p8, :p2] kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] spare = [:p1, :p4, :p11, :p9, :p8, :p2] kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] :p7: started :p5: started :p2: started :p6: started :p3: started spare = [:p1, :p4, :p11, :p9, :p8, :p2] spare = [:p1, :p4, :p11, :p9, :p8, :p2] kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] :p1: started kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] spare = [:p1, :p4, :p11, :p9, :p8, :p2] kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] spare = [:p1, :p4, :p11, :p9, :p8, :p2] p10 - Propose 1 with action nil spare = [:p1, :p4, :p11, :p9, :p8, :p2] spare = [:p1, :p4, :p11, :p9, :p8, :p2] kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] spare = [:p1, :p4, :p11, :p9, :p8, :p2] p10 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] spare = [:p1, :p4, :p11, :p9, :p8, :p2] p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] p4 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil kill: leaders, followers = [:p10, :p5], [:p7, :p6, :p3] p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p1 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p11 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p1 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p1 accepted 1 1 p11 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p9 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p8 - accept 1 1 {:val, 206} p1 accepted 1 1 p4 - p1 is leader p8 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 206} p4 decided 1 {:val, 206} p9 decided 1 {:val, 206} p8 decided 1 {:val, 206} p2 decided 1 {:val, 206} p11 decided 1 {:val, 206} p9 - p1 is leader p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 206} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 206} p4: decided {:val, 206} p8: decided {:val, 206} p9: decided {:val, 206} p11 - p1 is leader p11: decided {:val, 206} p2: decided {:val, 206} p1: decided {:val, 206} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p9 Starting paxos for p1 Starting paxos for p7 Starting paxos for p6 Starting paxos for p10 Starting paxos for p3 Starting paxos for p8 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p11 :p10: started spare = [:p4, :p2, :p11, :p7, :p5, :p8] kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil :p5: started :p8: started :p11: started :p6: started :p4: started :p3: started p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil spare = [:p4, :p2, :p11, :p7, :p5, :p8] p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] spare = [:p4, :p2, :p11, :p7, :p5, :p8] :p9: started p4 SET BALLOT VALUE 3 nil :p7: started p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] :p2: started spare = [:p4, :p2, :p11, :p7, :p5, :p8] p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p1: started kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] p1 SET BALLOT VALUE 3 nil spare = [:p4, :p2, :p11, :p7, :p5, :p8] spare = [:p4, :p2, :p11, :p7, :p5, :p8] kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] spare = [:p4, :p2, :p11, :p7, :p5, :p8] kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] spare = [:p4, :p2, :p11, :p7, :p5, :p8] spare = [:p4, :p2, :p11, :p7, :p5, :p8] spare = [:p4, :p2, :p11, :p7, :p5, :p8] kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] p6 - Propose 1 with action nil kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] spare = [:p4, :p2, :p11, :p7, :p5, :p8] kill: leaders, followers = [:p10, :p6], [:p3, :p1, :p9] p8 - Propose 1 with action nil p4 - Propose 1 with action nil p7 - p1 is leader p6 - p1 is leader p8 - p1 is leader p4 - p1 is leader p2 - p1 is leader p5 - p1 is leader p11 - p1 is leader p7 - p10 is leader p8 - p11 is leader p4 - p11 is leader p2 - p11 is leader p5 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p7 - prepare from p11 p4 - prepare from p11 p5 - prepare from p11 p8 - prepare from p11 p2 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p4 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p11 SET BALLOT VALUE {:val, 201} p8 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p11 accepted 1 1 p5 - accept 1 1 {:val, 201} p11 accepted 1 1 p2 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 decided 1 {:val, 201} p7 decided 1 {:val, 201} p2 decided 1 {:val, 201} p5 decided 1 {:val, 201} p4 decided 1 {:val, 201} p8 decided 1 {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p4: decided {:val, 201} p8: decided {:val, 201} p11: decided {:val, 201} p5: decided {:val, 201} p2: decided {:val, 201} p7: decided {:val, 201} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 Starting paxos for p10 Starting paxos for p6 Starting paxos for p9 Starting paxos for p3 Starting paxos for p8 Starting paxos for p7 Starting paxos for p11 :p9: started :p6: started spare = [:p6, :p3, :p1, :p11, :p5, :p7] spare = [:p6, :p3, :p1, :p11, :p5, :p7] :p1: started kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] p9 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil :p7: started :p11: started :p3: started :p8: started :p10: started :p4: started :p2: started p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p5: started p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p1, :p11, :p5, :p7] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] p2 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p1, :p11, :p5, :p7] p3 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p1, :p11, :p5, :p7] p5 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] p7 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p1, :p11, :p5, :p7] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] p10 SET BALLOT VALUE 3 nil spare = [:p6, :p3, :p1, :p11, :p5, :p7] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] spare = [:p6, :p3, :p1, :p11, :p5, :p7] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] spare = [:p6, :p3, :p1, :p11, :p5, :p7] spare = [:p6, :p3, :p1, :p11, :p5, :p7] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] spare = [:p6, :p3, :p1, :p11, :p5, :p7] kill: leaders, followers = [:p10, :p9], [:p2, :p4, :p8] p1 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p7 - Propose 1 with action nil p1 - p1 is leader p1 sending all prepare 1 1 p7 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p6 - prepare from p1 p5 - prepare from p1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p5 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p6 - accept 1 1 {:val, 204} p6 - p1 is leader p9 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p9 - p1 is leader p7 - accept 1 1 {:val, 204} p10 - p1 is leader p1 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p1 - prepared 1 1 nil nil p3 - p1 is leader p7 - p1 is leader p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 204} p10 decided 1 {:val, 204} p7 decided 1 {:val, 204} p5 decided 1 {:val, 204} p1 decided 1 {:val, 204} p11 decided 1 {:val, 204} p6 decided 1 {:val, 204} p3 decided 1 {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p6: decided {:val, 204} p7: decided {:val, 204} p11: decided {:val, 204} p5: decided {:val, 204} p3: decided {:val, 204} p1: decided {:val, 204} p11 - p1 is leader p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p4 Starting paxos for p8 Starting paxos for p9 Starting paxos for p11 Starting paxos for p1 Starting paxos for p7 Starting paxos for p3 Starting paxos for p2 Starting paxos for p10 Starting paxos for p5 Starting paxos for p6 :p8: started :p4: started :p11: started :p9: started :p10: started :p1: started :p6: started :p7: started :p3: started :p2: started :p5: started spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] spare = [:p7, :p3, :p2, :p10, :p5, :p6] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] kill: leaders, followers = [:p4, :p8], [:p9, :p11, :p1] p8 - Propose 1 with action nil p4 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p7 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p10 is leader p7 - p10 is leader p2 - p10 is leader p6 - p10 is leader p5 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p10 - prepare from p10 p7 - prepare from p10 p3 - prepare from p10 p2 - prepare from p10 p5 - prepare from p10 p6 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p7 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p7 decided 1 {:val, 201} p10 decided 1 {:val, 201} p3 decided 1 {:val, 201} p2 decided 1 {:val, 201} p5 decided 1 {:val, 201} p6 decided 1 {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p5: decided {:val, 201} p3: decided {:val, 201} p10: decided {:val, 201} p2: decided {:val, 201} p7: decided {:val, 201} p6: decided {:val, 201} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p8 Starting paxos for p4 Starting paxos for p1 Starting paxos for p11 Starting paxos for p2 Starting paxos for p3 Starting paxos for p7 Starting paxos for p5 Starting paxos for p6 Starting paxos for p9 Starting paxos for p10 :p8: started :p7: started :p4: started :p6: started :p1: started :p11: started :p9: started :p2: started :p5: started :p3: started :p10: started spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] spare = [:p3, :p7, :p5, :p6, :p9, :p10] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] kill: leaders, followers = [:p8, :p4], [:p1, :p11, :p2] p8 - Propose 1 with action nil p4 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p3 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 - p10 is leader p6 - p10 is leader p5 - p10 is leader p9 - p10 is leader p3 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p7 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p3 - prepare from p10 p6 - prepare from p10 p5 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 204} p9 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 204} p7 decided 1 {:val, 204} p5 decided 1 {:val, 204} p6 decided 1 {:val, 204} p3 decided 1 {:val, 204} p10 decided 1 {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 204} p7: decided {:val, 204} p6: decided {:val, 204} p9: decided {:val, 204} p5: decided {:val, 204} p10: decided {:val, 204} p3: decided {:val, 204} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p7 Starting paxos for p6 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 Starting paxos for p3 Starting paxos for p4 Starting paxos for p8 Starting paxos for p2 Starting paxos for p11 Starting paxos for p5 :p7: started :p6: started :p1: started :p9: started :p10: started :p3: started :p4: started :p8: started :p2: started :p11: started :p5: started spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] spare = [:p3, :p4, :p8, :p2, :p11, :p5] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] kill: leaders, followers = [:p7, :p6], [:p1, :p9, :p10] p7 - Propose 1 with action nil p6 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - p11 is leader p8 - p11 is leader p11 - p11 is leader p3 - p11 is leader p2 - p11 is leader p11 sending all prepare 1 1 p5 - p11 is leader p11 SET BALLOT VALUE 2 nil p4 - prepare from p11 p8 - prepare from p11 p3 - prepare from p11 p2 - prepare from p11 p5 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 207} p4 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p8 decided 1 {:val, 207} p11 decided 1 {:val, 207} p5 decided 1 {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p11: decided {:val, 207} p2: decided {:val, 207} p8: decided {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p3: decided {:val, 207} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 Starting paxos for p10 Starting paxos for p8 Starting paxos for p1 Starting paxos for p6 Starting paxos for p11 Starting paxos for p9 Starting paxos for p7 Starting paxos for p5 :p2: started :p3: started :p10: started :p4: started :p8: started :p1: started :p9: started :p6: started :p11: started :p7: started :p5: started spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] spare = [:p1, :p6, :p11, :p9, :p7, :p5] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] kill: leaders, followers = [:p2, :p3], [:p4, :p10, :p8] p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p1 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - p1 is leader p7 - p1 is leader p9 - p1 is leader p11 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p11 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p1 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p9 - accept 1 1 {:val, 205} p7 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 205} p6 decided 1 {:val, 205} p11 decided 1 {:val, 205} p9 decided 1 {:val, 205} p7 decided 1 {:val, 205} p5 decided 1 {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p9: decided {:val, 205} p11: decided {:val, 205} p7: decided {:val, 205} p6: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p11 Starting paxos for p2 Starting paxos for p7 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 Starting paxos for p6 Starting paxos for p9 Starting paxos for p8 Starting paxos for p3 Starting paxos for p10 :p11: started :p3: started :p7: started :p2: started :p4: started :p1: started :p5: started :p9: started :p6: started :p8: started :p10: started spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] spare = [:p5, :p6, :p9, :p8, :p3, :p10] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] kill: leaders, followers = [:p11, :p2], [:p7, :p1, :p4] p11 - Propose 1 with action nil p2 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p5 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - p10 is leader p9 - p10 is leader p6 - p10 is leader p8 - p10 is leader p10 - p10 is leader p3 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p3 - prepare from p10 p8 - prepare from p10 p6 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 204} p5 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 204} p3 decided 1 {:val, 204} p5 decided 1 {:val, 204} p6 decided 1 {:val, 204} p8 decided 1 {:val, 204} p10 decided 1 {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p5 - Propose 1 with action nil p6: decided {:val, 204} p5 - Has already decided for 1 sending {:val, 204} p9: decided {:val, 204} p8: decided {:val, 204} p3: decided {:val, 204} p10: decided {:val, 204} p5: decided {:val, 204} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p3 Starting paxos for p10 Starting paxos for p1 Starting paxos for p4 Starting paxos for p9 Starting paxos for p8 Starting paxos for p2 Starting paxos for p11 Starting paxos for p5 Starting paxos for p7 Starting paxos for p6 :p11: started :p3: started :p5: started :p10: started :p1: started :p4: started :p9: started :p8: started :p2: started :p7: started :p6: started spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] spare = [:p8, :p2, :p11, :p5, :p7, :p6] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] kill: leaders, followers = [:p3, :p10], [:p1, :p4, :p9] p3 - Propose 1 with action nil p10 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p8 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 - p10 is leader p2 - p10 is leader p11 - p10 is leader p6 - p10 is leader p5 - p10 is leader p8 - p10 is leader p8 - p11 is leader p11 - p11 is leader p7 - p11 is leader p2 - p11 is leader p5 - p11 is leader p6 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p11 - prepare from p11 p6 - prepare from p11 p8 - prepare from p11 p2 - prepare from p11 p5 - prepare from p11 p7 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 201} p5 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p8 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p2 decided 1 {:val, 201} p8 decided 1 {:val, 201} p5 decided 1 {:val, 201} p7 decided 1 {:val, 201} p6 decided 1 {:val, 201} p11 decided 1 {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 201} p6: decided {:val, 201} p8: decided {:val, 201} p7: decided {:val, 201} p5: decided {:val, 201} p11: decided {:val, 201} p2: decided {:val, 201} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p10 Starting paxos for p1 Starting paxos for p2 Starting paxos for p11 Starting paxos for p3 Starting paxos for p5 Starting paxos for p9 Starting paxos for p7 Starting paxos for p8 Starting paxos for p6 Starting paxos for p4 :p1: started :p10: started :p3: started :p2: started :p7: started :p11: started :p5: started :p4: started :p6: started :p9: started :p8: started spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] spare = [:p5, :p9, :p7, :p8, :p6, :p4] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] kill: leaders, followers = [:p10, :p1], [:p2, :p11, :p3] p1 - Propose 1 with action nil p10 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 - p1 is leader p5 - p1 is leader p7 - p1 is leader p9 - p1 is leader p8 - p1 is leader p4 - p1 is leader p7 - p4 is leader p9 - p4 is leader p8 - p4 is leader p5 - p4 is leader p6 - p4 is leader p4 - p4 is leader p4 sending all prepare 1 1 p4 SET BALLOT VALUE 2 nil p9 - prepare from p4 p8 - prepare from p4 p5 - prepare from p4 p6 - prepare from p4 p7 - prepare from p4 p4 - prepare from p4 p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 1 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 2 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 3 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 4 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 5 false p4 - prepared 1 1 nil nil p4 Try to run prepared p4 11 6 false p4 SET BALLOT VALUE {:val, 201} p5 - accept 1 1 {:val, 201} p9 - accept 1 1 {:val, 201} p8 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p4 accepted 1 1 p9 decided 1 {:val, 201} p5 decided 1 {:val, 201} p8 decided 1 {:val, 201} p6 decided 1 {:val, 201} p7 decided 1 {:val, 201} p4 decided 1 {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p4: decided {:val, 201} p5: decided {:val, 201} p6: decided {:val, 201} p8: decided {:val, 201} p9: decided {:val, 201} p7: decided {:val, 201} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p8 Starting paxos for p5 Starting paxos for p7 Starting paxos for p4 Starting paxos for p10 Starting paxos for p6 Starting paxos for p11 Starting paxos for p2 Starting paxos for p9 Starting paxos for p3 Starting paxos for p1 :p8: started :p5: started :p7: started :p4: started :p10: started :p6: started :p11: started :p2: started :p9: started :p3: started :p1: started spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] spare = [:p6, :p11, :p2, :p9, :p3, :p1] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] p8 - Propose 1 with action nil kill: leaders, followers = [:p8, :p5], [:p7, :p4, :p10] p5 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p6 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 - p1 is leader p11 - p1 is leader p1 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p9 - p1 is leader p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p6 - prepare from p1 p2 - prepare from p1 p11 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p3 - prepare from p1 p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p3 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p9 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 205} p3 decided 1 {:val, 205} p9 decided 1 {:val, 205} p11 decided 1 {:val, 205} p6 decided 1 {:val, 205} p1 decided 1 {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p6 - Propose 1 with action nil p1 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 205} p1 - Has already decided for 1 sending {:val, 205} p11: decided {:val, 205} p9: decided {:val, 205} p3: decided {:val, 205} p2: decided {:val, 205} p6: decided {:val, 205} p1: decided {:val, 205} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p7 Starting paxos for p3 Starting paxos for p6 Starting paxos for p9 Starting paxos for p10 Starting paxos for p8 Starting paxos for p2 Starting paxos for p5 Starting paxos for p11 Starting paxos for p4 Starting paxos for p1 :p7: started :p3: started :p6: started :p9: started :p10: started :p8: started :p2: started :p5: started :p11: started :p4: started :p1: started spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] spare = [:p8, :p2, :p5, :p11, :p4, :p1] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] kill: leaders, followers = [:p7, :p3], [:p6, :p9, :p10] p7 - Propose 1 with action nil p3 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p8 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 - p1 is leader p2 - p1 is leader p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p11 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p11 - prepare from p1 p2 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p1 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p8 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 decided 1 {:val, 205} p11 decided 1 {:val, 205} p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p1 decided 1 {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p2: decided {:val, 205} p8 - Has already decided for 1 sending {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p11: decided {:val, 205} p1: decided {:val, 205} p8: decided {:val, 205} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p5 Starting paxos for p7 Starting paxos for p6 Starting paxos for p8 Starting paxos for p9 Starting paxos for p11 Starting paxos for p2 Starting paxos for p10 Starting paxos for p1 Starting paxos for p3 :p4: started :p5: started :p7: started :p6: started :p8: started :p9: started :p11: started :p2: started :p10: started :p1: started :p3: started spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] spare = [:p9, :p11, :p2, :p10, :p1, :p3] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] kill: leaders, followers = [:p4, :p5], [:p7, :p6, :p8] p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p9 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p10 - p1 is leader p3 - p1 is leader p2 - p1 is leader p9 - p1 is leader p11 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p9 - prepare from p1 p10 - prepare from p1 p2 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p9 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 210} p11 decided 1 {:val, 210} p1 decided 1 {:val, 210} p2 decided 1 {:val, 210} p10 decided 1 {:val, 210} p3 decided 1 {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p10: decided {:val, 210} p1: decided {:val, 210} p2: decided {:val, 210} p11: decided {:val, 210} p3: decided {:val, 210} p9: decided {:val, 210} p9: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p10 Starting paxos for p1 Starting paxos for p5 Starting paxos for p2 Starting paxos for p7 Starting paxos for p9 Starting paxos for p8 Starting paxos for p3 Starting paxos for p6 Starting paxos for p4 Starting paxos for p11 :p3: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] :p10: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] p3 - Propose 1 with action nil :p2: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p11: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p1: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] :p7: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] p11 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p5: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] :p4: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] :p8: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] :p9: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] :p6: started with [:p3, :p10, :p1, :p8, :p5, :p11, :p9, :p7, :p2, :p6, :p4] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p2 - p1 is leader p7 - p1 is leader p9 - p11 is leader p4 - p11 is leader p6 - p11 is leader p11 - p10 is leader p2 - p10 is leader p7 - p10 is leader p9 - p10 is leader p4 - p10 is leader p6 - p10 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p9 - prepare from p11 p7 - prepare from p11 p2 - prepare from p11 p4 - prepare from p11 p6 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 206} p11 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p11 accepted 1 1 p11 accepted 1 1 p9 - accept 1 1 {:val, 206} p11 accepted 1 1 p11 accepted 1 1 p6 - accept 1 1 {:val, 206} p11 accepted 1 1 p7 - accept 1 1 {:val, 206} p11 accepted 1 1 p2 decided 1 {:val, 206} p7 decided 1 {:val, 206} p11 decided 1 {:val, 206} p4 decided 1 {:val, 206} p9 decided 1 {:val, 206} p6 decided 1 {:val, 206} p11: decided {:val, 206} p2: decided {:val, 206} p7: decided {:val, 206} p4: decided {:val, 206} p9: decided {:val, 206} p6: decided {:val, 206} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p5 Starting paxos for p8 Starting paxos for p4 Starting paxos for p2 Starting paxos for p6 Starting paxos for p9 Starting paxos for p10 Starting paxos for p3 Starting paxos for p1 Starting paxos for p7 Starting paxos for p11 :p5: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] :p11: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] :p1: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] :p9: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] :p6: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil :p10: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] p1 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p7: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] :p8: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p2: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p4: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] :p3: started with [:p11, :p5, :p10, :p2, :p8, :p1, :p4, :p6, :p7, :p9, :p3] p5 - p1 is leader p4 - p1 is leader p6 - p1 is leader p9 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p6 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p7 - p1 is leader p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p9 - accept 1 1 {:val, 209} p1 SET BALLOT VALUE {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p7 - accept 1 1 {:val, 209} p1 accepted 1 1 p6 - accept 1 1 {:val, 209} p1 accepted 1 1 p3 - accept 1 1 {:val, 209} p1 accepted 1 1 p4 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 decided 1 {:val, 209} p3 decided 1 {:val, 209} p6 decided 1 {:val, 209} p4 decided 1 {:val, 209} p9 decided 1 {:val, 209} p7 decided 1 {:val, 209} p1: decided {:val, 209} p9: decided {:val, 209} p6: decided {:val, 209} p7: decided {:val, 209} p4: decided {:val, 209} p3: decided {:val, 209} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p10 Starting paxos for p7 Starting paxos for p5 Starting paxos for p1 Starting paxos for p8 Starting paxos for p9 Starting paxos for p3 Starting paxos for p2 Starting paxos for p6 Starting paxos for p4 Starting paxos for p11 :p7: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] :p11: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] :p8: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] :p3: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] :p10: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] :p5: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] p3 - Propose 1 with action nil p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p6: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p1: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p4: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p2: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] p9 SET BALLOT VALUE 3 nil :p9: started with [:p3, :p10, :p8, :p1, :p9, :p4, :p6, :p2, :p11, :p7, :p5] p4 - Propose 1 with action nil p10 - p1 is leader p7 - p1 is leader p5 - p1 is leader p3 - p1 is leader p2 - p1 is leader p6 - p1 is leader p4 - p1 is leader p11 - p10 is leader p7 - p10 is leader p5 - p10 is leader p2 - p10 is leader p6 - p10 is leader p4 - p10 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p4 - prepare from p11 p5 - prepare from p11 p6 - prepare from p11 p2 - prepare from p11 p7 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p2 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p11 SET BALLOT VALUE {:val, 205} p6 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p7 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p11 decided 1 {:val, 205} p5 decided 1 {:val, 205} p6 decided 1 {:val, 205} p7 decided 1 {:val, 205} p4: decided {:val, 205} p11: decided {:val, 205} p7: decided {:val, 205} p5: decided {:val, 205} p6: decided {:val, 205} p2: decided {:val, 205} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p8 Starting paxos for p9 Starting paxos for p1 Starting paxos for p5 Starting paxos for p10 Starting paxos for p6 Starting paxos for p2 Starting paxos for p7 Starting paxos for p4 Starting paxos for p3 Starting paxos for p11 :p5: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] :p10: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] :p8: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p3: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] :p1: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] :p9: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] :p11: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] :p7: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] :p4: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p6: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] p10 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil :p2: started with [:p8, :p1, :p2, :p9, :p5, :p7, :p6, :p3, :p4, :p10, :p11] p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p6 - p1 is leader p10 - p1 is leader p7 - p1 is leader p4 - p1 is leader p3 - p1 is leader p11 - p1 is leader p6 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p7 - prepare from p10 p11 - prepare from p10 p6 - prepare from p10 p4 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p7 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p4 - p10 is leader p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 203} p10 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p10 accepted 1 1 p4 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 accepted 1 1 p3 - accept 1 1 {:val, 203} p6 - accept 1 1 {:val, 203} p10 accepted 1 1 p11 - accept 1 1 {:val, 203} p3 - p10 is leader p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 203} p7 decided 1 {:val, 203} p6 decided 1 {:val, 203} p3 decided 1 {:val, 203} p4 decided 1 {:val, 203} p11 decided 1 {:val, 203} p7: decided {:val, 203} p10: decided {:val, 203} p4: decided {:val, 203} p3: decided {:val, 203} p6: decided {:val, 203} p11: decided {:val, 203} p11 - p10 is leader p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p9 Starting paxos for p10 Starting paxos for p1 Starting paxos for p3 Starting paxos for p7 Starting paxos for p2 Starting paxos for p6 Starting paxos for p8 Starting paxos for p5 Starting paxos for p4 Starting paxos for p11 :p11: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] :p2: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p4: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] :p9: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] :p5: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] :p10: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil :p7: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] p6 SET BALLOT VALUE 3 nil :p3: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] :p1: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] p1 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p6: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] :p8: started with [:p1, :p2, :p8, :p11, :p6, :p9, :p3, :p10, :p5, :p7, :p4] p10 - p1 is leader p9 - p1 is leader p3 - p1 is leader p7 - p1 is leader p4 - p1 is leader p5 - p1 is leader p10 - p10 is leader p10 sending all prepare 1 1 p9 - p10 is leader p10 SET BALLOT VALUE 2 nil p4 - prepare from p10 p3 - prepare from p10 p5 - prepare from p10 p7 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p9 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p10 SET BALLOT VALUE {:val, 209} p3 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p10 - accept 1 1 {:val, 209} p3 - p10 is leader p10 accepted 1 1 p7 - accept 1 1 {:val, 209} p7 - p10 is leader p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 209} p10 decided 1 {:val, 209} p3 decided 1 {:val, 209} p7 decided 1 {:val, 209} p5 decided 1 {:val, 209} p4 decided 1 {:val, 209} p4 - p10 is leader p5 - p10 is leader p9: decided {:val, 209} p4: decided {:val, 209} p10: decided {:val, 209} p5: decided {:val, 209} p7: decided {:val, 209} p3: decided {:val, 209} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p7 Starting paxos for p9 Starting paxos for p1 Starting paxos for p10 Starting paxos for p4 Starting paxos for p6 Starting paxos for p8 Starting paxos for p5 Starting paxos for p2 Starting paxos for p3 Starting paxos for p11 :p5: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] :p7: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] :p3: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] :p6: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] p6 - Propose 1 with action nil :p10: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] p6 SET BALLOT VALUE 3 nil :p1: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] :p2: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] :p8: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] :p9: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] :p4: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] p10 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p11: started with [:p1, :p6, :p7, :p4, :p2, :p8, :p3, :p5, :p10, :p11, :p9] p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p9 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p6 - prepare from p1 p3 - prepare from p1 p8 - prepare from p1 p11 - prepare from p1 p9 - prepare from p1 p10 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p10 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p8 - accept 1 1 {:val, 209} p6 - accept 1 1 {:val, 209} p10 - accept 1 1 {:val, 209} p1 SET BALLOT VALUE {:val, 209} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 - p1 is leader p9 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 209} p8 decided 1 {:val, 209} p6 decided 1 {:val, 209} p5 decided 1 {:val, 209} p9 decided 1 {:val, 209} p10 decided 1 {:val, 209} p11 decided 1 {:val, 209} p1 accepted 1 1 p8 - p1 is leader p1 decided 1 {:val, 209} p3 - p1 is leader p5 - p1 is leader p8: decided {:val, 209} p11 - p1 is leader p5: decided {:val, 209} p3: decided {:val, 209} p10: decided {:val, 209} p9: decided {:val, 209} p11: decided {:val, 209} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p4 Starting paxos for p10 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 Starting paxos for p6 Starting paxos for p9 Starting paxos for p2 Starting paxos for p8 Starting paxos for p7 Starting paxos for p11 :p9: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] :p2: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] :p3: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] :p7: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] :p1: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p11: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] p1 SET BALLOT VALUE 3 nil :p8: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] :p4: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p6: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] p5 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil :p5: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] p4 SET BALLOT VALUE 3 nil :p10: started with [:p6, :p4, :p3, :p8, :p7, :p2, :p1, :p9, :p11, :p10, :p5] p11 SET BALLOT VALUE 3 nil p4 - p1 is leader p10 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p6 - prepare from p1 p2 - prepare from p1 p10 - prepare from p1 p9 - prepare from p1 p11 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p9 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p6 - p1 is leader p1 Try to run prepared p1 11 6 false p2 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p1 SET BALLOT VALUE {:val, 205} p4 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p9 - accept 1 1 {:val, 205} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 decided 1 {:val, 205} p10 decided 1 {:val, 205} p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p9 decided 1 {:val, 205} p6 decided 1 {:val, 205} p11 decided 1 {:val, 205} p2 - p1 is leader p1 accepted 1 1 p2 decided 1 {:val, 205} p1 accepted 1 1 p2: decided {:val, 205} p11 - p1 is leader p9: decided {:val, 205} p1: decided {:val, 205} p5: decided {:val, 205} p11: decided {:val, 205} p10: decided {:val, 205} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p5 Starting paxos for p9 Starting paxos for p4 Starting paxos for p10 Starting paxos for p6 Starting paxos for p8 Starting paxos for p3 Starting paxos for p7 Starting paxos for p2 Starting paxos for p11 :p8: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p11: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p9: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p1: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p2: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p3: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p4: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p7: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p6: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p10: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] :p5: started with [:p7, :p10, :p9, :p2, :p3, :p4, :p11, :p8, :p5, :p1, :p6] p7 - Propose 1 with action nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p4 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p4 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p1 SET BALLOT VALUE {:val, 203} p6 - accept 1 1 {:val, 203} p5 - p1 is leader p1 - accept 1 1 {:val, 203} p8 - accept 1 1 {:val, 203} p11 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 203} p11 decided 1 {:val, 203} p4 decided 1 {:val, 203} p6 decided 1 {:val, 203} p8 decided 1 {:val, 203} p5 decided 1 {:val, 203} p4 - p1 is leader p6 - p1 is leader p8 - p1 is leader p4: decided {:val, 203} p8: decided {:val, 203} p11: decided {:val, 203} p1: decided {:val, 203} p6: decided {:val, 203} p5: decided {:val, 203} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p4 Starting paxos for p10 Starting paxos for p3 Starting paxos for p9 Starting paxos for p5 Starting paxos for p7 Starting paxos for p6 Starting paxos for p8 Starting paxos for p1 Starting paxos for p2 Starting paxos for p11 :p1: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] :p2: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] :p6: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] :p7: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p8: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] p7 SET BALLOT VALUE 3 nil :p5: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] p2 SET BALLOT VALUE 3 nil :p3: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p9: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] :p11: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] p9 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil :p10: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] p10 - Propose 1 with action nil :p4: started with [:p10, :p11, :p4, :p9, :p3, :p1, :p8, :p6, :p7, :p5, :p2] p5 - p1 is leader p6 - p1 is leader p7 - p1 is leader p8 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p2 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 209} p7 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p6 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p5 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 decided 1 {:val, 209} p1 decided 1 {:val, 209} p2 decided 1 {:val, 209} p6 decided 1 {:val, 209} p5 decided 1 {:val, 209} p7 decided 1 {:val, 209} p1: decided {:val, 209} p2: decided {:val, 209} p6: decided {:val, 209} p7: decided {:val, 209} p8: decided {:val, 209} p5: decided {:val, 209} p7: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p10 Starting paxos for p6 Starting paxos for p8 Starting paxos for p3 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p7 Starting paxos for p1 Starting paxos for p9 Starting paxos for p11 :p1: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p9: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p11: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p7: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p6: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p5: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p4: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p10: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil :p3: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p2: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] :p8: started with [:p11, :p3, :p7, :p4, :p8, :p10, :p9, :p6, :p2, :p5, :p1] p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 - p1 is leader p10 - p1 is leader p6 - p1 is leader p5 - p1 is leader p2 - p1 is leader p9 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p6 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p11 - accept 1 1 {:val, 206} p9 - accept 1 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p10 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 decided 1 {:val, 206} p6 decided 1 {:val, 206} p3 decided 1 {:val, 206} p9 decided 1 {:val, 206} p10 decided 1 {:val, 206} p5 - accept 1 1 {:val, 206} p11 decided 1 {:val, 206} p5 decided 1 {:val, 206} p1 accepted 1 1 p2 - accept 1 1 {:val, 206} p2 decided 1 {:val, 206} p1 accepted 1 1 p10: decided {:val, 206} p1: decided {:val, 206} p9: decided {:val, 206} p6: decided {:val, 206} p5: decided {:val, 206} p2: decided {:val, 206} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p9 Starting paxos for p1 Starting paxos for p8 Starting paxos for p3 Starting paxos for p10 Starting paxos for p11 Starting paxos for p6 Starting paxos for p5 Starting paxos for p4 Starting paxos for p7 Starting paxos for p2 :p9: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p1: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p8: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p3: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p10: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p11: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p6: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p4: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p5: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p7: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] :p2: started with [:p9, :p1, :p8, :p3, :p10, :p11, :p6, :p5, :p4, :p7, :p2] p9 - Propose 1 with action nil p1 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p6 - p1 is leader p5 - p1 is leader p11 - p1 is leader p4 - p1 is leader p7 - p1 is leader p2 - p1 is leader p11 - p11 is leader p5 - p11 is leader p6 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p6 - prepare from p11 p11 - prepare from p11 p2 - prepare from p11 p5 - prepare from p11 p4 - prepare from p11 p7 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p4 - p11 is leader p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p2 - p11 is leader p7 - p11 is leader p7 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p6 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p11 SET BALLOT VALUE {:val, 203} p11 - accept 1 1 {:val, 203} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p4 decided 1 {:val, 203} p5 decided 1 {:val, 203} p6 decided 1 {:val, 203} p11 decided 1 {:val, 203} p7 decided 1 {:val, 203} p2 decided 1 {:val, 203} p11: decided {:val, 203} p6: decided {:val, 203} p2: decided {:val, 203} p4: decided {:val, 203} p7: decided {:val, 203} p5: decided {:val, 203} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p10 Starting paxos for p1 Starting paxos for p9 Starting paxos for p4 Starting paxos for p7 Starting paxos for p6 Starting paxos for p11 Starting paxos for p3 Starting paxos for p2 Starting paxos for p8 Starting paxos for p5 :p10: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p3: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p1: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p2: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p8: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p9: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p5: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p4: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p7: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p6: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] :p11: started with [:p10, :p1, :p9, :p4, :p7, :p6, :p11, :p3, :p2, :p8, :p5] p10 - Propose 1 with action nil p1 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p2 - p1 is leader p3 - p1 is leader p11 - p1 is leader p5 - p1 is leader p6 - p1 is leader p8 - p1 is leader p5 - p11 is leader p6 - p11 is leader p2 - p11 is leader p8 - p11 is leader p11 - p11 is leader p3 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p6 - prepare from p11 p3 - prepare from p11 p2 - prepare from p11 p8 - prepare from p11 p5 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 207} p6 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p6 decided 1 {:val, 207} p5 decided 1 {:val, 207} p11 decided 1 {:val, 207} p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p8 decided 1 {:val, 207} p6: decided {:val, 207} p2: decided {:val, 207} p3: decided {:val, 207} p8: decided {:val, 207} p5: decided {:val, 207} p11: decided {:val, 207} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p4 Starting paxos for p5 Starting paxos for p7 Starting paxos for p8 Starting paxos for p9 Starting paxos for p10 Starting paxos for p11 Starting paxos for p1 Starting paxos for p3 Starting paxos for p6 Starting paxos for p2 :p5: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p8: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p6: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p4: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p9: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p7: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p10: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p1: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p11: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p3: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] :p2: started with [:p5, :p4, :p7, :p8, :p9, :p10, :p11, :p1, :p3, :p6, :p2] p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p11 - p1 is leader p6 - p1 is leader p2 - p1 is leader p3 - p1 is leader p10 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p2 - prepare from p1 p10 - prepare from p1 p3 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p6 - accept 1 1 {:val, 205} p10 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 205} p1 decided 1 {:val, 205} p10 decided 1 {:val, 205} p3 decided 1 {:val, 205} p11 decided 1 {:val, 205} p2 decided 1 {:val, 205} p6: decided {:val, 205} p11: decided {:val, 205} p1: decided {:val, 205} p3: decided {:val, 205} p2: decided {:val, 205} p10: decided {:val, 205} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p7 Starting paxos for p10 Starting paxos for p5 Starting paxos for p9 Starting paxos for p6 Starting paxos for p11 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p8 Starting paxos for p1 :p10: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p7: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p4: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p2: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p5: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p3: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p8: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p9: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p1: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p6: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] :p11: started with [:p7, :p10, :p5, :p9, :p6, :p11, :p4, :p2, :p3, :p8, :p1] p7 - Propose 1 with action nil p10 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p11 - p1 is leader p4 - p1 is leader p8 - p1 is leader p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 203} p2 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p8 - accept 1 1 {:val, 203} p11 - accept 1 1 {:val, 203} p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 203} p3 decided 1 {:val, 203} p11 decided 1 {:val, 203} p4 decided 1 {:val, 203} p2 decided 1 {:val, 203} p8 decided 1 {:val, 203} p8: decided {:val, 203} p4: decided {:val, 203} p2: decided {:val, 203} p3: decided {:val, 203} p1: decided {:val, 203} p11: decided {:val, 203} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p10 Starting paxos for p1 Starting paxos for p9 Starting paxos for p4 Starting paxos for p8 Starting paxos for p3 Starting paxos for p2 Starting paxos for p6 Starting paxos for p11 Starting paxos for p5 Starting paxos for p7 :p1: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p10: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p3: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p6: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p9: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p11: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p4: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p5: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p8: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p7: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] :p2: started with [:p10, :p1, :p9, :p4, :p8, :p3, :p2, :p6, :p11, :p5, :p7] p1 - Propose 1 with action nil p10 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 - p1 is leader p2 - p1 is leader p6 - p1 is leader p7 - p1 is leader p11 - p1 is leader p5 - p1 is leader p2 - p11 is leader p6 - p11 is leader p3 - p11 is leader p11 - p11 is leader p7 - p11 is leader p5 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p2 - prepare from p11 p3 - prepare from p11 p7 - prepare from p11 p5 - prepare from p11 p6 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 202} p3 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p7 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p7 decided 1 {:val, 202} p11 decided 1 {:val, 202} p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p6 decided 1 {:val, 202} p5 decided 1 {:val, 202} p3: decided {:val, 202} p6: decided {:val, 202} p11: decided {:val, 202} p2: decided {:val, 202} p5: decided {:val, 202} p7: decided {:val, 202} p2: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p10 Starting paxos for p9 Starting paxos for p4 Starting paxos for p5 Starting paxos for p8 Starting paxos for p3 Starting paxos for p11 Starting paxos for p1 Starting paxos for p7 Starting paxos for p6 :p7: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p3: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p2: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p10: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p9: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p1: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p4: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p8: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p5: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p11: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] :p6: started with [:p2, :p10, :p9, :p4, :p5, :p8, :p3, :p11, :p1, :p7, :p6] p2 - Propose 1 with action nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p11 - p1 is leader p7 - p1 is leader p3 - p1 is leader p8 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p7 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 decided 1 {:val, 204} p7 decided 1 {:val, 204} p3 decided 1 {:val, 204} p11 decided 1 {:val, 204} p1 decided 1 {:val, 204} p6 decided 1 {:val, 204} p1: decided {:val, 204} p7: decided {:val, 204} p11: decided {:val, 204} p3: decided {:val, 204} p6: decided {:val, 204} p8: decided {:val, 204} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p11 Starting paxos for p9 Starting paxos for p5 Starting paxos for p4 Starting paxos for p7 Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 Starting paxos for p10 Starting paxos for p8 :p11: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p9: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p5: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p4: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p7: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p6: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p2: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p1: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p3: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p10: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] :p8: started with [:p11, :p9, :p5, :p4, :p7, :p6, :p2, :p1, :p3, :p10, :p8] p11 - Propose 1 with action nil p9 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p6 - p1 is leader p10 - p1 is leader p2 - p1 is leader p3 - p1 is leader p8 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p2 - prepare from p1 p6 - prepare from p1 p10 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p6 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 207} p8 decided 1 {:val, 207} p1 decided 1 {:val, 207} p3 decided 1 {:val, 207} p6 decided 1 {:val, 207} p10 decided 1 {:val, 207} p1: decided {:val, 207} p2: decided {:val, 207} p8: decided {:val, 207} p3: decided {:val, 207} p10: decided {:val, 207} p6: decided {:val, 207} p2: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p4 Starting paxos for p5 Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p8 Starting paxos for p6 Starting paxos for p11 Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p4: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p9: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p7: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p10: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p11: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p5: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p6: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p8: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p2: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p3: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] :p1: started with [:p4, :p5, :p7, :p10, :p9, :p8, :p6, :p11, :p1, :p2, :p3] p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p2 - p1 is leader p3 - p1 is leader p6 - p1 is leader p1 - p1 is leader p11 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p2 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 decided 1 {:val, 204} p11 decided 1 {:val, 204} p6 decided 1 {:val, 204} p1 decided 1 {:val, 204} p3 decided 1 {:val, 204} p2 decided 1 {:val, 204} p11: decided {:val, 204} p3: decided {:val, 204} p1: decided {:val, 204} p6: decided {:val, 204} p2: decided {:val, 204} p8: decided {:val, 204} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p11 Starting paxos for p4 Starting paxos for p2 Starting paxos for p7 Starting paxos for p3 Starting paxos for p6 Starting paxos for p9 Starting paxos for p8 Starting paxos for p5 Starting paxos for p10 Starting paxos for p1 :p11: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p1: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p4: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p7: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p2: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p3: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p6: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p9: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p5: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p8: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] :p10: started with [:p11, :p4, :p2, :p7, :p3, :p6, :p9, :p8, :p5, :p10, :p1] p11 - Propose 1 with action nil p4 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p9 - p1 is leader p6 - p1 is leader p8 - p1 is leader p1 - p1 is leader p5 - p1 is leader p10 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p6 - prepare from p1 p8 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p10 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p5 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p6 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 207} p5 decided 1 {:val, 207} p1 decided 1 {:val, 207} p9 decided 1 {:val, 207} p10 decided 1 {:val, 207} p8 decided 1 {:val, 207} p8: decided {:val, 207} p5: decided {:val, 207} p9: decided {:val, 207} p10: decided {:val, 207} p1: decided {:val, 207} p6: decided {:val, 207} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p7 Starting paxos for p2 Starting paxos for p1 Starting paxos for p6 Starting paxos for p11 Starting paxos for p4 Starting paxos for p10 Starting paxos for p3 Starting paxos for p8 Starting paxos for p5 Starting paxos for p9 :p7: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p2: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p1: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p6: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p11: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p4: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p10: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p3: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p5: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p8: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] :p9: started with [:p7, :p2, :p1, :p6, :p11, :p4, :p10, :p3, :p8, :p5, :p9] p7 - Propose 1 with action nil p2 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 - p10 is leader p10 - p10 is leader p3 - p10 is leader p8 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p8 - prepare from p10 p3 - prepare from p10 p4 - prepare from p10 p9 - prepare from p10 p5 - prepare from p10 p10 - prepare from p10 p9 - p10 is leader p5 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 207} p4 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p3 decided 1 {:val, 207} p5 decided 1 {:val, 207} p8 decided 1 {:val, 207} p10 decided 1 {:val, 207} p4 decided 1 {:val, 207} p9 decided 1 {:val, 207} p5: decided {:val, 207} p9: decided {:val, 207} p10: decided {:val, 207} p3: decided {:val, 207} p8: decided {:val, 207} p4: decided {:val, 207} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p10 Starting paxos for p5 Starting paxos for p4 Starting paxos for p6 Starting paxos for p8 Starting paxos for p3 Starting paxos for p9 Starting paxos for p2 Starting paxos for p7 Starting paxos for p1 Starting paxos for p11 :p11: started :p1: started :p8: started :p6: started :p4: started :p7: started :p10: started :p2: started :p3: started spare = [:p11, :p3, :p2, :p8, :p7, :p1] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] spare = [:p11, :p3, :p2, :p8, :p7, :p1] :p9: started kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] spare = [:p11, :p3, :p2, :p8, :p7, :p1] spare = [:p11, :p3, :p2, :p8, :p7, :p1] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil spare = [:p11, :p3, :p2, :p8, :p7, :p1] :p5: started spare = [:p11, :p3, :p2, :p8, :p7, :p1] spare = [:p11, :p3, :p2, :p8, :p7, :p1] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] p1 - Propose 1 with action nil spare = [:p11, :p3, :p2, :p8, :p7, :p1] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] spare = [:p11, :p3, :p2, :p8, :p7, :p1] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] spare = [:p11, :p3, :p2, :p8, :p7, :p1] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil spare = [:p11, :p3, :p2, :p8, :p7, :p1] kill: leaders, followers = [:p10, :p5], [:p4, :p6, :p9] p5 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 - p1 is leader p3 - p1 is leader p2 - p1 is leader p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p8 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p7 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p2 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p8 - accept 1 1 {:val, 201} p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 - accept 1 1 {:val, 201} p1 accepted 1 1 p7 decided 1 {:val, 201} p3 decided 1 {:val, 201} p8 decided 1 {:val, 201} p2 decided 1 {:val, 201} p11 decided 1 {:val, 201} p1 decided 1 {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - p1 is leader p1: decided {:val, 201} p11: decided {:val, 201} p7: decided {:val, 201} p2: decided {:val, 201} p8: decided {:val, 201} p3: decided {:val, 201} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p7 Starting paxos for p9 Starting paxos for p6 Starting paxos for p8 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p10 Starting paxos for p11 :p10: started :p8: started :p1: started spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] :p3: started :p4: started :p11: started :p6: started spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] :p9: started :p2: started :p5: started spare = [:p7, :p1, :p10, :p4, :p2, :p3] spare = [:p7, :p1, :p10, :p4, :p2, :p3] :p7: started kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] spare = [:p7, :p1, :p10, :p4, :p2, :p3] spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil spare = [:p7, :p1, :p10, :p4, :p2, :p3] kill: leaders, followers = [:p6, :p11], [:p8, :p9, :p5] p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p7 - p1 is leader p6 - p1 is leader p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p10 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p10 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p3 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p4 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p7 - accept 1 1 {:val, 210} p1 accepted 1 1 p10 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 decided 1 {:val, 210} p4 decided 1 {:val, 210} p2 decided 1 {:val, 210} p10 decided 1 {:val, 210} p3 decided 1 {:val, 210} p7 decided 1 {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 210} p3: decided {:val, 210} p7: decided {:val, 210} p10: decided {:val, 210} p1: decided {:val, 210} p4: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p5 Starting paxos for p6 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 Starting paxos for p7 Starting paxos for p8 Starting paxos for p4 Starting paxos for p3 Starting paxos for p11 :p11: started :p10: started spare = [:p5, :p7, :p6, :p10, :p9, :p1] kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] spare = [:p5, :p7, :p6, :p10, :p9, :p1] kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] :p5: started :p8: started :p6: started spare = [:p5, :p7, :p6, :p10, :p9, :p1] kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] :p1: started :p4: started :p2: started spare = [:p5, :p7, :p6, :p10, :p9, :p1] spare = [:p5, :p7, :p6, :p10, :p9, :p1] :p9: started :p3: started :p7: started kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil spare = [:p5, :p7, :p6, :p10, :p9, :p1] spare = [:p5, :p7, :p6, :p10, :p9, :p1] kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] p10 SET BALLOT VALUE 3 nil spare = [:p5, :p7, :p6, :p10, :p9, :p1] kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil spare = [:p5, :p7, :p6, :p10, :p9, :p1] p7 SET BALLOT VALUE 3 nil spare = [:p5, :p7, :p6, :p10, :p9, :p1] p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] p9 SET BALLOT VALUE 3 nil spare = [:p5, :p7, :p6, :p10, :p9, :p1] p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] p1 - Propose 1 with action nil kill: leaders, followers = [:p2, :p4], [:p3, :p11, :p8] p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p7 - prepare from p1 p6 - prepare from p1 p10 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p5 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p7 - accept 1 1 {:val, 201} p1 accepted 1 1 p9 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p10 - accept 1 1 {:val, 201} p1 accepted 1 1 p6 - accept 1 1 {:val, 201} p10 - p1 is leader p1 accepted 1 1 p9 - p1 is leader p6 decided 1 {:val, 201} p7 decided 1 {:val, 201} p5 decided 1 {:val, 201} p9 decided 1 {:val, 201} p10 decided 1 {:val, 201} p1 decided 1 {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p7 - p1 is leader p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p1: decided {:val, 201} p5: decided {:val, 201} p10: decided {:val, 201} p6: decided {:val, 201} p9: decided {:val, 201} p7: decided {:val, 201} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p3 Starting paxos for p8 Starting paxos for p5 Starting paxos for p9 Starting paxos for p6 Starting paxos for p10 Starting paxos for p1 Starting paxos for p7 Starting paxos for p2 Starting paxos for p4 Starting paxos for p11 :p3: started :p1: started :p5: started :p8: started :p4: started :p11: started :p6: started :p2: started spare = [:p11, :p2, :p4, :p1, :p5, :p10] spare = [:p11, :p2, :p4, :p1, :p5, :p10] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] spare = [:p11, :p2, :p4, :p1, :p5, :p10] spare = [:p11, :p2, :p4, :p1, :p5, :p10] :p9: started :p10: started kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] spare = [:p11, :p2, :p4, :p1, :p5, :p10] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] spare = [:p11, :p2, :p4, :p1, :p5, :p10] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] spare = [:p11, :p2, :p4, :p1, :p5, :p10] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] :p7: started p8 - Propose 1 with action nil kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] p8 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil spare = [:p11, :p2, :p4, :p1, :p5, :p10] p3 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil spare = [:p11, :p2, :p4, :p1, :p5, :p10] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil spare = [:p11, :p2, :p4, :p1, :p5, :p10] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil spare = [:p11, :p2, :p4, :p1, :p5, :p10] kill: leaders, followers = [:p8, :p3], [:p9, :p7, :p6] p4 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p5 - p1 is leader p10 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p10 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p11 - accept 1 1 {:val, 207} p1 accepted 1 1 p2 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p2 - p1 is leader p5 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p4 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p11 decided 1 {:val, 207} p2 decided 1 {:val, 207} p10 decided 1 {:val, 207} p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p5 decided 1 {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 207} p11 - p1 is leader p10: decided {:val, 207} p11: decided {:val, 207} p1: decided {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p2: decided {:val, 207} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p10 Starting paxos for p3 Starting paxos for p9 Starting paxos for p7 Starting paxos for p8 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p6 Starting paxos for p5 Starting paxos for p11 :p4: started :p6: started :p11: started :p5: started spare = [:p7, :p4, :p11, :p5, :p9, :p2] :p1: started kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] :p10: started :p9: started :p7: started spare = [:p7, :p4, :p11, :p5, :p9, :p2] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] spare = [:p7, :p4, :p11, :p5, :p9, :p2] :p3: started :p8: started kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] spare = [:p7, :p4, :p11, :p5, :p9, :p2] spare = [:p7, :p4, :p11, :p5, :p9, :p2] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] :p2: started spare = [:p7, :p4, :p11, :p5, :p9, :p2] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] spare = [:p7, :p4, :p11, :p5, :p9, :p2] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] spare = [:p7, :p4, :p11, :p5, :p9, :p2] spare = [:p7, :p4, :p11, :p5, :p9, :p2] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] spare = [:p7, :p4, :p11, :p5, :p9, :p2] p10 - Propose 1 with action nil kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] p10 SET BALLOT VALUE 3 nil spare = [:p7, :p4, :p11, :p5, :p9, :p2] kill: leaders, followers = [:p10, :p3], [:p1, :p8, :p6] p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p4 - prepare from p10 p2 - prepare from p10 p11 - prepare from p10 p10 - prepare from p10 p7 - prepare from p10 p9 - prepare from p10 p3 - prepare from p10 p5 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p7 - p10 is leader p3 - p10 is leader p10 SET BALLOT VALUE {:val, 207} p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 7 true p10 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 207} p7 - accept 1 1 {:val, 207} p10 Try to run prepared p3 - accept 1 1 {:val, 207} p10 11 8 true p2 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 accepted 1 1 p5 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p10 accepted 1 1 p9 - p10 is leader p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 207} p3 decided 1 {:val, 207} p4 decided 1 {:val, 207} p2 decided 1 {:val, 207} p7 decided 1 {:val, 207} p5 decided 1 {:val, 207} p11 decided 1 {:val, 207} p10 decided 1 {:val, 207} p2 - Propose 1 with action nil p10 accepted 1 1 p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - p10 is leader p4 - p10 is leader p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - p10 is leader p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p2: decided {:val, 207} p11 - p1 is leader p7: decided {:val, 207} p5: decided {:val, 207} p4: decided {:val, 207} p9: decided {:val, 207} p11: decided {:val, 207} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p10 Starting paxos for p5 Starting paxos for p8 Starting paxos for p6 Starting paxos for p9 Starting paxos for p3 Starting paxos for p7 Starting paxos for p4 Starting paxos for p1 Starting paxos for p11 :p10: started :p11: started :p7: started spare = [:p6, :p9, :p10, :p2, :p8, :p7] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] spare = [:p6, :p9, :p10, :p2, :p8, :p7] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] spare = [:p6, :p9, :p10, :p2, :p8, :p7] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] :p5: started p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil :p1: started :p6: started :p2: started :p3: started :p8: started :p9: started p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p4: started p8 SET BALLOT VALUE 3 nil spare = [:p6, :p9, :p10, :p2, :p8, :p7] spare = [:p6, :p9, :p10, :p2, :p8, :p7] spare = [:p6, :p9, :p10, :p2, :p8, :p7] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] p4 SET BALLOT VALUE 3 nil spare = [:p6, :p9, :p10, :p2, :p8, :p7] p5 SET BALLOT VALUE 3 nil spare = [:p6, :p9, :p10, :p2, :p8, :p7] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] spare = [:p6, :p9, :p10, :p2, :p8, :p7] spare = [:p6, :p9, :p10, :p2, :p8, :p7] p1 - Propose 1 with action nil kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] p5 - Propose 1 with action nil spare = [:p6, :p9, :p10, :p2, :p8, :p7] p10 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p5, :p1], [:p11, :p3, :p4] p6 - Propose 1 with action nil p2 - p1 is leader p10 - p1 is leader p5 - p1 is leader p8 - p1 is leader p6 - p1 is leader p9 - p1 is leader p7 - p1 is leader p8 - p10 is leader p6 - p10 is leader p9 - p10 is leader p7 - p10 is leader p2 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p6 - prepare from p10 p8 - prepare from p10 p7 - prepare from p10 p9 - prepare from p10 p2 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 203} p10 - accept 1 1 {:val, 203} p10 accepted 1 1 p8 - accept 1 1 {:val, 203} p10 accepted 1 1 p6 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 accepted 1 1 p2 - accept 1 1 {:val, 203} p10 accepted 1 1 p9 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 decided 1 {:val, 203} p9 decided 1 {:val, 203} p8 decided 1 {:val, 203} p2 decided 1 {:val, 203} p7 decided 1 {:val, 203} p6 decided 1 {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 203} p10: decided {:val, 203} p9: decided {:val, 203} p7: decided {:val, 203} p2: decided {:val, 203} p6: decided {:val, 203} p8: decided {:val, 203} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p7 Starting paxos for p8 Starting paxos for p10 Starting paxos for p9 Starting paxos for p2 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 Starting paxos for p6 Starting paxos for p4 Starting paxos for p11 :p6: started :p10: started :p4: started spare = [:p5, :p3, :p4, :p6, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] :p9: started :p3: started :p2: started :p8: started spare = [:p5, :p3, :p4, :p6, :p11, :p9] :p7: started :p1: started :p5: started :p11: started kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] spare = [:p5, :p3, :p4, :p6, :p11, :p9] spare = [:p5, :p3, :p4, :p6, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] spare = [:p5, :p3, :p4, :p6, :p11, :p9] spare = [:p5, :p3, :p4, :p6, :p11, :p9] spare = [:p5, :p3, :p4, :p6, :p11, :p9] spare = [:p5, :p3, :p4, :p6, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] spare = [:p5, :p3, :p4, :p6, :p11, :p9] p7 - Propose 1 with action nil spare = [:p5, :p3, :p4, :p6, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] spare = [:p5, :p3, :p4, :p6, :p11, :p9] p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p7], [:p10, :p2, :p1] p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p8 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 - p1 is leader p7 - p1 is leader p9 - p1 is leader p5 - p11 is leader p6 - p11 is leader p3 - p11 is leader p4 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p3 - prepare from p11 p5 - prepare from p11 p9 - prepare from p11 p6 - prepare from p11 p4 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p5 - accept 1 1 {:val, 210} p9 - accept 1 1 {:val, 210} p11 SET BALLOT VALUE {:val, 210} p11 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p11 accepted 1 1 p6 - accept 1 1 {:val, 210} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 decided 1 {:val, 210} p5 decided 1 {:val, 210} p9 decided 1 {:val, 210} p6 decided 1 {:val, 210} p4 decided 1 {:val, 210} p3 decided 1 {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p9: decided {:val, 210} p5: decided {:val, 210} p6: decided {:val, 210} p4: decided {:val, 210} p11: decided {:val, 210} p3: decided {:val, 210} p9 - p11 is leader p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p6 Starting paxos for p3 Starting paxos for p10 Starting paxos for p4 Starting paxos for p9 Starting paxos for p7 Starting paxos for p5 Starting paxos for p1 Starting paxos for p8 Starting paxos for p2 Starting paxos for p11 :p2: started :p7: started :p5: started :p3: started :p11: started :p6: started spare = [:p10, :p9, :p5, :p2, :p7, :p8] :p4: started :p10: started :p9: started spare = [:p10, :p9, :p5, :p2, :p7, :p8] kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] :p1: started kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] spare = [:p10, :p9, :p5, :p2, :p7, :p8] spare = [:p10, :p9, :p5, :p2, :p7, :p8] spare = [:p10, :p9, :p5, :p2, :p7, :p8] kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] spare = [:p10, :p9, :p5, :p2, :p7, :p8] :p8: started kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] spare = [:p10, :p9, :p5, :p2, :p7, :p8] spare = [:p10, :p9, :p5, :p2, :p7, :p8] spare = [:p10, :p9, :p5, :p2, :p7, :p8] spare = [:p10, :p9, :p5, :p2, :p7, :p8] p6 - Propose 1 with action nil kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] p6 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] spare = [:p10, :p9, :p5, :p2, :p7, :p8] kill: leaders, followers = [:p6, :p4], [:p1, :p3, :p11] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p9 - p1 is leader p4 - p1 is leader p10 - p1 is leader p7 - p1 is leader p5 - p1 is leader p2 - p1 is leader p8 - p1 is leader p9 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p9 - prepare from p10 p2 - prepare from p10 p7 - prepare from p10 p8 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 207} p7 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 accepted 1 1 p8 - accept 1 1 {:val, 207} p10 accepted 1 1 p9 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 accepted 1 1 p2 - accept 1 1 {:val, 207} p10 accepted 1 1 p7 decided 1 {:val, 207} p9 decided 1 {:val, 207} p2 decided 1 {:val, 207} p8 decided 1 {:val, 207} p5 decided 1 {:val, 207} p7 - p10 is leader p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p5 - p10 is leader p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p2 - p10 is leader p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - p10 is leader p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p10 decided 1 {:val, 207} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p10: decided {:val, 207} p8: decided {:val, 207} p2: decided {:val, 207} p9: decided {:val, 207} p7: decided {:val, 207} p5: decided {:val, 207} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p7 Starting paxos for p9 Starting paxos for p10 Starting paxos for p6 Starting paxos for p4 Starting paxos for p8 Starting paxos for p5 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p11 :p8: started :p3: started :p11: started spare = [:p9, :p2, :p5, :p1, :p7, :p8] kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] :p6: started :p1: started :p5: started :p2: started :p7: started :p10: started :p9: started spare = [:p9, :p2, :p5, :p1, :p7, :p8] :p4: started kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] spare = [:p9, :p2, :p5, :p1, :p7, :p8] kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] spare = [:p9, :p2, :p5, :p1, :p7, :p8] kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] spare = [:p9, :p2, :p5, :p1, :p7, :p8] spare = [:p9, :p2, :p5, :p1, :p7, :p8] spare = [:p9, :p2, :p5, :p1, :p7, :p8] kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] p11 - Propose 1 with action nil p8 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil spare = [:p9, :p2, :p5, :p1, :p7, :p8] p8 SET BALLOT VALUE 3 nil spare = [:p9, :p2, :p5, :p1, :p7, :p8] spare = [:p9, :p2, :p5, :p1, :p7, :p8] kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] spare = [:p9, :p2, :p5, :p1, :p7, :p8] p9 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] p6 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p6, :p11], [:p4, :p10, :p3] p4 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 - p1 is leader p9 - p1 is leader p6 - p1 is leader p8 - p1 is leader p5 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p11 - prepare from p1 p8 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p6 - accept 1 1 {:val, 203} p1 SET BALLOT VALUE {:val, 203} p8 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p1 Try to run prepared p7 - accept 1 1 {:val, 203} p9 - accept 1 1 {:val, 203} p1 11 7 true p1 - prepared 1 1 nil nil p11 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 203} p6 decided 1 {:val, 203} p8 decided 1 {:val, 203} p7 decided 1 {:val, 203} p9 decided 1 {:val, 203} p1 decided 1 {:val, 203} p11 decided 1 {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p2 - accept 1 1 {:val, 203} p8 - Has already decided for 1 sending {:val, 203} p2 decided 1 {:val, 203} p1 accepted 1 1 p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p8: decided {:val, 203} p9: decided {:val, 203} p2: decided {:val, 203} p7: decided {:val, 203} p1: decided {:val, 203} p5: decided {:val, 203} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p5 Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p10 Starting paxos for p8 Starting paxos for p3 Starting paxos for p9 Starting paxos for p4 Starting paxos for p7 Starting paxos for p11 :p11: started :p1: started :p7: started :p2: started spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] p11 - Propose 1 with action nil :p3: started p11 SET BALLOT VALUE 3 nil :p10: started :p6: started :p4: started spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] :p8: started spare = [:p5, :p2, :p7, :p1, :p4, :p9] spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] p10 SET BALLOT VALUE 3 nil :p9: started p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p5: started p5 SET BALLOT VALUE 3 nil spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] p4 SET BALLOT VALUE 3 nil spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] spare = [:p5, :p2, :p7, :p1, :p4, :p9] spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] p3 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] p9 - Propose 1 with action nil spare = [:p5, :p2, :p7, :p1, :p4, :p9] kill: leaders, followers = [:p10, :p11], [:p6, :p3, :p8] p5 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p2 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p5 - accept 1 1 {:val, 204} p1 SET BALLOT VALUE {:val, 204} p1 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p9 - accept 1 1 {:val, 204} p1 accepted 1 1 p4 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p1 accepted 1 1 p2 - accept 1 1 {:val, 204} p4 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 204} p7 decided 1 {:val, 204} p4 decided 1 {:val, 204} p5 decided 1 {:val, 204} p9 decided 1 {:val, 204} p2 decided 1 {:val, 204} p9 - p1 is leader p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p7 - p1 is leader p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 204} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 204} p9: decided {:val, 204} p5: decided {:val, 204} p7: decided {:val, 204} p1: decided {:val, 204} p2: decided {:val, 204} p4: decided {:val, 204} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p3 Starting paxos for p11 Starting paxos for p5 Starting paxos for p4 Starting paxos for p6 Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p1 Starting paxos for p8 Starting paxos for p2 :p4: started :p3: started :p7: started :p11: started :p10: started :p5: started :p9: started :p6: started :p8: started :p1: started :p2: started spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] spare = [:p7, :p10, :p9, :p1, :p8, :p2] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] kill: leaders, followers = [:p3, :p11], [:p5, :p4, :p6] p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p7 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 - p1 is leader p7 - p1 is leader p9 - p1 is leader p1 - p1 is leader p10 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p10 - prepare from p1 p9 - prepare from p1 p8 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 203} p1 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p10 - accept 1 1 {:val, 203} p8 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p9 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 203} p10 decided 1 {:val, 203} p9 decided 1 {:val, 203} p8 decided 1 {:val, 203} p2 decided 1 {:val, 203} p1 decided 1 {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p10: decided {:val, 203} p1: decided {:val, 203} p9: decided {:val, 203} p8: decided {:val, 203} p2: decided {:val, 203} p7: decided {:val, 203} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p11 Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p7 Starting paxos for p3 Starting paxos for p8 Starting paxos for p9 Starting paxos for p4 Starting paxos for p10 Starting paxos for p5 :p11: started :p6: started :p2: started :p1: started :p7: started :p3: started :p8: started :p9: started :p4: started :p10: started :p5: started spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] spare = [:p3, :p8, :p9, :p4, :p10, :p5] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] kill: leaders, followers = [:p11, :p6], [:p2, :p1, :p7] p11 - Propose 1 with action nil p6 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 - p10 is leader p8 - p10 is leader p5 - p10 is leader p10 - p10 is leader p9 - p10 is leader p4 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p8 - prepare from p10 p3 - prepare from p10 p4 - prepare from p10 p9 - prepare from p10 p5 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p10 - accept 1 1 {:val, 201} p8 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p9 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 201} p3 decided 1 {:val, 201} p5 decided 1 {:val, 201} p8 decided 1 {:val, 201} p4 decided 1 {:val, 201} p9 decided 1 {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p4: decided {:val, 201} p8: decided {:val, 201} p9: decided {:val, 201} p10: decided {:val, 201} p3: decided {:val, 201} p5: decided {:val, 201} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p7 Starting paxos for p2 Starting paxos for p9 Starting paxos for p3 Starting paxos for p6 Starting paxos for p1 Starting paxos for p11 Starting paxos for p5 Starting paxos for p8 Starting paxos for p10 Starting paxos for p4 :p7: started :p3: started :p2: started :p11: started :p9: started :p6: started :p1: started :p5: started :p8: started :p10: started :p4: started spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] spare = [:p1, :p11, :p5, :p8, :p10, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] kill: leaders, followers = [:p7, :p2], [:p9, :p3, :p6] p7 - Propose 1 with action nil p2 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p10 - p1 is leader p1 - p1 is leader p5 - p1 is leader p11 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p11 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p4 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p11 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 decided 1 {:val, 210} p8 decided 1 {:val, 210} p4 decided 1 {:val, 210} p11 decided 1 {:val, 210} p5 decided 1 {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p1 decided 1 {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p5: decided {:val, 210} p8: decided {:val, 210} p10: decided {:val, 210} p11: decided {:val, 210} p4: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 Starting paxos for p9 Starting paxos for p11 Starting paxos for p8 Starting paxos for p10 Starting paxos for p2 Starting paxos for p4 :p7: started :p6: started :p3: started :p5: started :p9: started :p1: started :p8: started :p11: started :p2: started :p10: started :p4: started spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] spare = [:p9, :p11, :p8, :p10, :p2, :p4] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] kill: leaders, followers = [:p6, :p7], [:p3, :p5, :p1] p6 - Propose 1 with action nil p7 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 - p10 is leader p4 - p10 is leader p8 - p10 is leader p11 - p10 is leader p2 - p10 is leader p9 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p9 - prepare from p10 p11 - prepare from p10 p2 - prepare from p10 p4 - prepare from p10 p10 - prepare from p10 p8 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p9 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p8 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 201} p11 decided 1 {:val, 201} p8 decided 1 {:val, 201} p4 decided 1 {:val, 201} p2 decided 1 {:val, 201} p10 decided 1 {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p10: decided {:val, 201} p11: decided {:val, 201} p8: decided {:val, 201} p2: decided {:val, 201} p4: decided {:val, 201} p9: decided {:val, 201} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p6 Starting paxos for p8 Starting paxos for p1 Starting paxos for p3 Starting paxos for p7 Starting paxos for p9 Starting paxos for p5 Starting paxos for p4 Starting paxos for p2 Starting paxos for p10 Starting paxos for p11 :p11: started :p6: started :p8: started :p1: started :p4: started :p3: started :p2: started :p9: started :p10: started :p7: started :p5: started spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] spare = [:p4, :p2, :p10, :p11, :p7, :p5] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] kill: leaders, followers = [:p6, :p8], [:p1, :p3, :p9] p6 - Propose 1 with action nil p8 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p4 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 - p10 is leader p2 - p10 is leader p4 - p10 is leader p7 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p4 - prepare from p10 p2 - prepare from p10 p10 - prepare from p10 p11 - prepare from p10 p7 - prepare from p10 p5 - prepare from p10 p10 - prepared 1 1 nil nil p11 - p10 is leader p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 207} p10 - accept 1 1 {:val, 207} p10 accepted 1 1 p4 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p7 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p4 decided 1 {:val, 207} p10 decided 1 {:val, 207} p2 decided 1 {:val, 207} p11 decided 1 {:val, 207} p7 decided 1 {:val, 207} p5 decided 1 {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p10: decided {:val, 207} p7: decided {:val, 207} p2: decided {:val, 207} p11: decided {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p5 Starting paxos for p11 Starting paxos for p10 Starting paxos for p9 Starting paxos for p7 Starting paxos for p3 Starting paxos for p2 Starting paxos for p8 Starting paxos for p6 Starting paxos for p1 Starting paxos for p4 :p8: started :p5: started :p6: started :p11: started :p1: started :p9: started :p10: started :p7: started :p2: started :p3: started :p4: started spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] spare = [:p3, :p2, :p8, :p4, :p6, :p1] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] kill: leaders, followers = [:p5, :p11], [:p10, :p9, :p7] p5 - Propose 1 with action nil p11 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 - p1 is leader p2 - p1 is leader p1 - p1 is leader p6 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p8 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p4 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 210} p8 decided 1 {:val, 210} p2 decided 1 {:val, 210} p6 decided 1 {:val, 210} p3 decided 1 {:val, 210} p1 decided 1 {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p2: decided {:val, 210} p4: decided {:val, 210} p8: decided {:val, 210} p6: decided {:val, 210} p1: decided {:val, 210} p3: decided {:val, 210} p8: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p10 Starting paxos for p5 Starting paxos for p6 Starting paxos for p3 Starting paxos for p1 Starting paxos for p9 Starting paxos for p8 Starting paxos for p7 Starting paxos for p11 Starting paxos for p4 :p2: started :p4: started :p10: started :p5: started :p6: started :p3: started :p1: started :p9: started :p8: started :p11: started :p7: started spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] spare = [:p1, :p9, :p8, :p7, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p3] p2 - Propose 1 with action nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p1 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - p1 is leader p1 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p11 - prepare from p1 p7 - prepare from p1 p8 - prepare from p1 p1 - prepared 1 1 nil nil p4 - p1 is leader p7 - p1 is leader p11 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p8 - accept 1 1 {:val, 210} p7 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p9 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 210} p7 decided 1 {:val, 210} p11 decided 1 {:val, 210} p4 decided 1 {:val, 210} p8 decided 1 {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p1 decided 1 {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p11: decided {:val, 210} p7: decided {:val, 210} p8: decided {:val, 210} p9: decided {:val, 210} p4: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p6 Starting paxos for p9 Starting paxos for p11 Starting paxos for p8 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p7 Starting paxos for p10 :p9: started :p6: started :p7: started :p11: started :p10: started :p8: started :p2: started :p1: started :p3: started :p4: started :p5: started spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] spare = [:p3, :p4, :p7, :p10, :p5, :p2] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] kill: leaders, followers = [:p6, :p9], [:p11, :p8, :p1] p9 - Propose 1 with action nil p6 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 - p10 is leader p7 - p10 is leader p4 - p10 is leader p5 - p10 is leader p3 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p3 - prepare from p10 p7 - prepare from p10 p4 - prepare from p10 p5 - prepare from p10 p2 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p3 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 201} p3 decided 1 {:val, 201} p5 decided 1 {:val, 201} p4 decided 1 {:val, 201} p2 decided 1 {:val, 201} p7 decided 1 {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 201} p5: decided {:val, 201} p7: decided {:val, 201} p4: decided {:val, 201} p10: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p6 Starting paxos for p3 Starting paxos for p2 Starting paxos for p8 Starting paxos for p5 Starting paxos for p10 Starting paxos for p1 Starting paxos for p7 Starting paxos for p11 Starting paxos for p9 Starting paxos for p4 :p6: started :p3: started :p2: started :p8: started :p5: started :p10: started :p9: started :p4: started :p1: started :p7: started :p11: started spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] spare = [:p10, :p1, :p7, :p11, :p9, :p4] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] kill: leaders, followers = [:p6, :p3], [:p2, :p8, :p5] p6 - Propose 1 with action nil p3 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p10 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 - p1 is leader p1 - p1 is leader p10 - p1 is leader p11 - p1 is leader p7 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p11 - prepare from p1 p10 - prepare from p1 p7 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - p1 is leader p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p1 accepted 1 1 p4 - accept 1 1 {:val, 201} p9 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p11 decided 1 {:val, 201} p10 decided 1 {:val, 201} p4 decided 1 {:val, 201} p1 decided 1 {:val, 201} p7 decided 1 {:val, 201} p9 decided 1 {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 201} p1: decided {:val, 201} p9: decided {:val, 201} p7: decided {:val, 201} p11: decided {:val, 201} p4: decided {:val, 201} p10: decided {:val, 201} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p11 Starting paxos for p10 Starting paxos for p4 Starting paxos for p5 Starting paxos for p1 Starting paxos for p8 Starting paxos for p6 Starting paxos for p9 Starting paxos for p2 Starting paxos for p3 Starting paxos for p7 :p11: started :p10: started :p4: started :p5: started :p1: started :p8: started :p6: started :p9: started :p2: started :p3: started :p7: started spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] spare = [:p8, :p6, :p9, :p2, :p3, :p7] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] kill: leaders, followers = [:p11, :p10], [:p4, :p5, :p1] p11 - Propose 1 with action nil p10 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p8 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 - p10 is leader p6 - p10 is leader p8 - p10 is leader p2 - p10 is leader p9 - p10 is leader p3 - p10 is leader p6 - p2 is leader p7 - p2 is leader p2 - p2 is leader p8 - p2 is leader p3 - p2 is leader p9 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p9 - prepare from p2 p6 - prepare from p2 p7 - prepare from p2 p8 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 4 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 5 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 6 false p2 SET BALLOT VALUE {:val, 207} p3 - accept 1 1 {:val, 207} p7 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p6 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p6 decided 1 {:val, 207} p8 decided 1 {:val, 207} p9 decided 1 {:val, 207} p3 decided 1 {:val, 207} p7 decided 1 {:val, 207} p2 decided 1 {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p8: decided {:val, 207} p7: decided {:val, 207} p2: decided {:val, 207} p6: decided {:val, 207} p9: decided {:val, 207} p3: decided {:val, 207} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p10 Starting paxos for p6 Starting paxos for p4 Starting paxos for p5 Starting paxos for p7 Starting paxos for p8 Starting paxos for p9 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p11 :p3: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] :p8: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] :p6: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] :p4: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p5: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] :p7: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] p1 SET BALLOT VALUE 3 nil :p2: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] p3 SET BALLOT VALUE 3 nil :p1: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] p1 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p9: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] :p10: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] p11 SET BALLOT VALUE 3 nil :p11: started with [:p8, :p1, :p5, :p4, :p6, :p9, :p11, :p7, :p3, :p2, :p10] p9 - Propose 1 with action nil p10 - p1 is leader p2 - p1 is leader p7 - p1 is leader p9 - p1 is leader p8 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p10 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p7 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 209} p3 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p9 - accept 1 1 {:val, 209} p1 - prepared 1 1 nil nil p8 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p1 Try to run prepared p7 - accept 1 1 {:val, 209} p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 209} p3 decided 1 {:val, 209} p2 decided 1 {:val, 209} p11 decided 1 {:val, 209} p9 decided 1 {:val, 209} p7 decided 1 {:val, 209} p8 decided 1 {:val, 209} p10 - accept 1 1 {:val, 209} p10 decided 1 {:val, 209} p1 accepted 1 1 p9: decided {:val, 209} p11 - p1 is leader p3: decided {:val, 209} p7: decided {:val, 209} p2: decided {:val, 209} p10: decided {:val, 209} p11: decided {:val, 209} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p8 Starting paxos for p9 Starting paxos for p4 Starting paxos for p7 Starting paxos for p5 Starting paxos for p2 Starting paxos for p10 Starting paxos for p3 Starting paxos for p1 Starting paxos for p6 Starting paxos for p11 :p7: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] :p10: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] :p3: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] :p5: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] :p1: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] :p9: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] :p8: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] :p2: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p4: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] p7 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p9 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p6: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p11: started with [:p8, :p1, :p6, :p5, :p2, :p9, :p11, :p3, :p4, :p7, :p10] p8 - p1 is leader p9 - p1 is leader p4 - p1 is leader p7 - p1 is leader p3 - p1 is leader p1 - p1 is leader p10 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p9 - prepare from p1 p7 - prepare from p1 p3 - prepare from p1 p10 - prepare from p1 p8 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p10 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p1 SET BALLOT VALUE {:val, 209} p1 - prepared 1 1 nil nil p9 - accept 1 1 {:val, 209} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - accept 1 1 {:val, 209} p1 11 8 true p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 209} p10 decided 1 {:val, 209} p4 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p9 decided 1 {:val, 209} p7 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p7 decided 1 {:val, 209} p3 decided 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p9: decided {:val, 209} p11 - p1 is leader p7: decided {:val, 209} p10: decided {:val, 209} p3: decided {:val, 209} p4: decided {:val, 209} p11: decided {:val, 209} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p3 Starting paxos for p1 Starting paxos for p6 Starting paxos for p7 Starting paxos for p4 Starting paxos for p8 Starting paxos for p2 Starting paxos for p10 Starting paxos for p5 Starting paxos for p9 Starting paxos for p11 :p8: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] :p6: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] :p9: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] :p3: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] :p7: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] :p5: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] :p1: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] p1 - Propose 1 with action nil p7 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p11: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] :p4: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p2: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil :p10: started with [:p4, :p1, :p3, :p6, :p8, :p7, :p2, :p5, :p11, :p10, :p9] p7 - p1 is leader p10 - p1 is leader p2 - p1 is leader p9 - p1 is leader p5 - p1 is leader p11 - p1 is leader p7 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p5 - prepare from p10 p11 - prepare from p10 p9 - prepare from p10 p7 - prepare from p10 p10 - prepare from p10 p2 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p9 - p10 is leader p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 207} p7 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p10 accepted 1 1 p11 - accept 1 1 {:val, 207} p10 accepted 1 1 p2 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p10 accepted 1 1 p5 - accept 1 1 {:val, 207} p10 accepted 1 1 p5 - p10 is leader p10 accepted 1 1 p10 accepted 1 1 p7 decided 1 {:val, 207} p2 decided 1 {:val, 207} p5 decided 1 {:val, 207} p11 decided 1 {:val, 207} p9 decided 1 {:val, 207} p10 decided 1 {:val, 207} p7: decided {:val, 207} p9: decided {:val, 207} p5: decided {:val, 207} p11 - p10 is leader p11: decided {:val, 207} p2: decided {:val, 207} p10: decided {:val, 207} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p5 Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p6 Starting paxos for p8 Starting paxos for p1 Starting paxos for p11 :p8: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p3: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] :p5: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] :p11: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] :p1: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] :p4: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] :p9: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] :p6: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p7: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p2: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] p2 - Propose 1 with action nil :p10: started with [:p3, :p2, :p7, :p11, :p5, :p8, :p4, :p9, :p1, :p6, :p10] p10 - p1 is leader p9 - p1 is leader p2 - p1 is leader p3 - p1 is leader p6 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p4 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p8 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - accept 1 1 {:val, 207} p1 11 7 true p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 207} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 - p1 is leader p9 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 207} p1 decided 1 {:val, 207} p2 decided 1 {:val, 207} p3 decided 1 {:val, 207} p4 decided 1 {:val, 207} p9 decided 1 {:val, 207} p10 - accept 1 1 {:val, 207} p8 decided 1 {:val, 207} p1 accepted 1 1 p6 decided 1 {:val, 207} p10 decided 1 {:val, 207} p1 accepted 1 1 p8: decided {:val, 207} p1: decided {:val, 207} p4: decided {:val, 207} p9: decided {:val, 207} p6: decided {:val, 207} p10: decided {:val, 207} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p9 Starting paxos for p8 Starting paxos for p1 Starting paxos for p7 Starting paxos for p5 Starting paxos for p6 Starting paxos for p3 Starting paxos for p4 Starting paxos for p10 Starting paxos for p11 :p10: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] :p1: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p6: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] p6 SET BALLOT VALUE 3 nil :p7: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] p10 SET BALLOT VALUE 3 nil :p9: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] :p4: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p3: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] p9 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p5: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p8: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] :p2: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] :p11: started with [:p1, :p2, :p6, :p8, :p5, :p9, :p7, :p3, :p10, :p11, :p4] p2 - Propose 1 with action nil p2 - p1 is leader p9 - p1 is leader p7 - p1 is leader p4 - p1 is leader p3 - p1 is leader p10 - p1 is leader p11 - p1 is leader p9 - p10 is leader p7 - p10 is leader p4 - p10 is leader p3 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p7 - prepare from p10 p3 - prepare from p10 p11 - prepare from p10 p4 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 207} p10 - accept 1 1 {:val, 207} p10 accepted 1 1 p9 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 accepted 1 1 p11 - accept 1 1 {:val, 207} p10 accepted 1 1 p4 - accept 1 1 {:val, 207} p10 accepted 1 1 p7 - accept 1 1 {:val, 207} p10 accepted 1 1 p10 decided 1 {:val, 207} p7 decided 1 {:val, 207} p11 decided 1 {:val, 207} p9 decided 1 {:val, 207} p3 decided 1 {:val, 207} p4 decided 1 {:val, 207} p9: decided {:val, 207} p10: decided {:val, 207} p7: decided {:val, 207} p4: decided {:val, 207} p3: decided {:val, 207} p11: decided {:val, 207} p11 - p10 is leader p3: {:message_queue_len, 0} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p5 Starting paxos for p8 Starting paxos for p1 Starting paxos for p7 Starting paxos for p10 Starting paxos for p6 Starting paxos for p2 Starting paxos for p4 Starting paxos for p9 Starting paxos for p3 Starting paxos for p11 :p11: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] :p9: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] :p10: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] p10 - Propose 1 with action nil :p5: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] p10 SET BALLOT VALUE 3 nil :p4: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] :p1: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] :p7: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] :p8: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil :p3: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p6: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] :p2: started with [:p10, :p7, :p5, :p2, :p4, :p6, :p8, :p11, :p9, :p1, :p3] p6 - Propose 1 with action nil p8 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p3 - prepare from p1 p8 - prepare from p1 p11 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p6 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p6 - p1 is leader p1 accepted 1 1 p3 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 decided 1 {:val, 207} p11 decided 1 {:val, 207} p6 decided 1 {:val, 207} p3 decided 1 {:val, 207} p9 decided 1 {:val, 207} p1 decided 1 {:val, 207} p9 - p1 is leader p3 - p1 is leader p11: decided {:val, 207} p9: decided {:val, 207} p6: decided {:val, 207} p1: decided {:val, 207} p8: decided {:val, 207} p3: decided {:val, 207} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p3 Starting paxos for p10 Starting paxos for p7 Starting paxos for p2 Starting paxos for p1 Starting paxos for p6 Starting paxos for p4 Starting paxos for p8 Starting paxos for p5 Starting paxos for p9 Starting paxos for p11 :p8: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] :p7: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p9: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p3: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil :p4: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] p10 SET BALLOT VALUE 3 nil :p6: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p11: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] :p1: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] :p10: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] :p2: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] :p5: started with [:p3, :p10, :p5, :p4, :p11, :p8, :p1, :p9, :p2, :p7, :p6] p10 - Propose 1 with action nil p10 - p1 is leader p3 - p1 is leader p2 - p1 is leader p7 - p1 is leader p8 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p6 - prepare from p1 p7 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p8 - prepare from p1 p10 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p8 - accept 1 1 {:val, 208} p1 Try to run prepared p10 - accept 1 1 {:val, 208} p1 11 7 true p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p1 accepted 1 1 p9 - p1 is leader p1 accepted 1 1 p2 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 208} p9 decided 1 {:val, 208} p7 decided 1 {:val, 208} p10 decided 1 {:val, 208} p2 decided 1 {:val, 208} p8 decided 1 {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p3 decided 1 {:val, 208} p8: decided {:val, 208} p7: decided {:val, 208} p9: decided {:val, 208} p6: decided {:val, 208} p1: decided {:val, 208} p2: decided {:val, 208} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p7 Starting paxos for p5 Starting paxos for p6 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 Starting paxos for p3 Starting paxos for p4 Starting paxos for p8 Starting paxos for p2 Starting paxos for p11 :p1: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] :p11: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] :p8: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] :p5: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] :p4: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p10: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] p1 SET BALLOT VALUE 3 nil :p3: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p9: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p6: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] :p7: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] p3 SET BALLOT VALUE 3 nil :p2: started with [:p6, :p5, :p8, :p7, :p10, :p9, :p11, :p4, :p3, :p1, :p2] p6 - Propose 1 with action nil p9 - Propose 1 with action nil p6 - p10 is leader p9 - p10 is leader p3 - p10 is leader p4 - p10 is leader p2 - p10 is leader p11 - p1 is leader p9 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p11 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p4 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p4 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p1 accepted 1 1 p9 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p2 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 209} p9 decided 1 {:val, 209} p11 decided 1 {:val, 209} p2 decided 1 {:val, 209} p4 decided 1 {:val, 209} p3 decided 1 {:val, 209} p9: decided {:val, 209} p1: decided {:val, 209} p11: decided {:val, 209} p4: decided {:val, 209} p3: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p9 Starting paxos for p10 Starting paxos for p8 Starting paxos for p1 Starting paxos for p11 :p5: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] :p9: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] :p4: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] :p6: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] :p7: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] :p10: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil :p8: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] :p3: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] p7 SET BALLOT VALUE 3 nil :p11: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] p9 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p2: started with [:p10, :p3, :p4, :p2, :p6, :p8, :p1, :p9, :p11, :p7, :p5] p7 - p1 is leader p5 - p1 is leader p3 - p1 is leader p10 - p1 is leader p9 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p8 - prepare from p1 p10 - prepare from p1 p7 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p8 - p1 is leader p10 - accept 1 1 {:val, 208} p11 - accept 1 1 {:val, 208} p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 208} p1 Try to run prepared p5 - accept 1 1 {:val, 208} p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 208} p8 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p8 decided 1 {:val, 208} p9 decided 1 {:val, 208} p10 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p11 decided 1 {:val, 208} p1 accepted 1 1 p7 - accept 1 1 {:val, 208} p7 decided 1 {:val, 208} p1 accepted 1 1 p8: decided {:val, 208} p5: decided {:val, 208} p9: decided {:val, 208} p11 - p1 is leader p7: decided {:val, 208} p11: decided {:val, 208} p1: decided {:val, 208} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p10 Starting paxos for p8 Starting paxos for p1 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p9 Starting paxos for p11 :p10: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] :p1: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] :p5: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] :p3: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] p1 - Propose 1 with action nil p10 - Propose 1 with action nil :p11: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] p1 SET BALLOT VALUE 3 nil :p9: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] :p6: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] p5 - p1 is leader :p2: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p10 - p1 is leader p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p4: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] :p7: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] :p8: started with [:p6, :p1, :p8, :p5, :p7, :p10, :p2, :p4, :p11, :p9, :p3] p8 - p1 is leader p6 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p10 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p2 - p1 is leader p9 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p9 - p1 is leader p1 11 6 false p1 SET BALLOT VALUE {:val, 209} p1 - prepared 1 1 nil nil p10 - accept 1 1 {:val, 209} p6 - accept 1 1 {:val, 209} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - accept 1 1 {:val, 209} p1 11 8 true p9 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p2 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p11 decided 1 {:val, 209} p9 decided 1 {:val, 209} p2 decided 1 {:val, 209} p4 decided 1 {:val, 209} p3 decided 1 {:val, 209} p6 decided 1 {:val, 209} p10 decided 1 {:val, 209} p1 accepted 1 1 p1 decided 1 {:val, 209} p4: decided {:val, 209} p11 - p1 is leader p10: decided {:val, 209} p3: decided {:val, 209} p11: decided {:val, 209} p2: decided {:val, 209} p9: decided {:val, 209} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p3 Starting paxos for p9 Starting paxos for p7 Starting paxos for p8 Starting paxos for p10 Starting paxos for p6 Starting paxos for p1 Starting paxos for p4 Starting paxos for p11 Starting paxos for p5 Starting paxos for p2 :p3: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p9: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p7: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p6: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p10: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p1: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p4: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p8: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p11: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p2: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] :p5: started with [:p3, :p7, :p10, :p1, :p9, :p8, :p6, :p4, :p11, :p2, :p5] p3 - Propose 1 with action nil p7 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p11 - p11 is leader p6 - p11 is leader p8 - p11 is leader p5 - p11 is leader p4 - p11 is leader p2 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p8 - prepare from p11 p4 - prepare from p11 p2 - prepare from p11 p6 - prepare from p11 p11 - prepare from p11 p5 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p4 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p11 SET BALLOT VALUE {:val, 204} p11 - accept 1 1 {:val, 204} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 decided 1 {:val, 204} p5 decided 1 {:val, 204} p8 decided 1 {:val, 204} p6 decided 1 {:val, 204} p4 decided 1 {:val, 204} p2 decided 1 {:val, 204} p2: decided {:val, 204} p11: decided {:val, 204} p5: decided {:val, 204} p6: decided {:val, 204} p4: decided {:val, 204} p8: decided {:val, 204} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p2 Starting paxos for p11 Starting paxos for p6 Starting paxos for p1 Starting paxos for p9 Starting paxos for p5 Starting paxos for p3 Starting paxos for p8 Starting paxos for p10 Starting paxos for p7 Starting paxos for p4 :p2: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p6: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p11: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p9: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p1: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p7: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p3: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p8: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p5: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p10: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] :p4: started with [:p2, :p6, :p9, :p7, :p11, :p1, :p3, :p5, :p8, :p10, :p4] p2 - Propose 1 with action nil p6 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p8 - prepare from p1 p10 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p10 - p1 is leader p8 - p1 is leader p1 11 2 false p3 - p1 is leader p4 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p8 - accept 1 1 {:val, 206} p10 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 206} p3 decided 1 {:val, 206} p1 decided 1 {:val, 206} p5 decided 1 {:val, 206} p8 decided 1 {:val, 206} p10 decided 1 {:val, 206} p4: decided {:val, 206} p8: decided {:val, 206} p3: decided {:val, 206} p5: decided {:val, 206} p10: decided {:val, 206} p1: decided {:val, 206} p10: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p1 Starting paxos for p11 Starting paxos for p4 Starting paxos for p6 Starting paxos for p5 Starting paxos for p10 Starting paxos for p7 Starting paxos for p9 Starting paxos for p8 Starting paxos for p3 :p11: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p2: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p10: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p4: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p1: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p8: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p6: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p3: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p9: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p5: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] :p7: started with [:p2, :p1, :p11, :p6, :p10, :p9, :p3, :p4, :p5, :p7, :p8] p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p8 - p1 is leader p9 - p1 is leader p7 - p1 is leader p5 - p1 is leader p4 - p1 is leader p3 - p1 is leader p8 - p3 is leader p3 - p3 is leader p9 - p3 is leader p5 - p3 is leader p7 - p3 is leader p4 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p8 - prepare from p3 p5 - prepare from p3 p4 - prepare from p3 p7 - prepare from p3 p9 - prepare from p3 p3 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 3 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 4 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 5 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 6 false p3 SET BALLOT VALUE {:val, 204} p4 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 decided 1 {:val, 204} p9 decided 1 {:val, 204} p8 decided 1 {:val, 204} p4 decided 1 {:val, 204} p5 decided 1 {:val, 204} p7 decided 1 {:val, 204} p9: decided {:val, 204} p4: decided {:val, 204} p8: decided {:val, 204} p7: decided {:val, 204} p5: decided {:val, 204} p3: decided {:val, 204} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p6 Starting paxos for p3 Starting paxos for p1 Starting paxos for p9 Starting paxos for p8 Starting paxos for p2 Starting paxos for p11 Starting paxos for p10 Starting paxos for p7 Starting paxos for p5 Starting paxos for p4 :p6: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p3: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p1: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p9: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p8: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p2: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p11: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p10: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p7: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p5: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] :p4: started with [:p6, :p3, :p1, :p9, :p8, :p2, :p11, :p10, :p7, :p5, :p4] p6 - Propose 1 with action nil p3 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 - p10 is leader p10 - p10 is leader p11 - p10 is leader p7 - p10 is leader p5 - p10 is leader p4 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p7 - prepare from p10 p11 - prepare from p10 p10 - prepare from p10 p4 - prepare from p10 p5 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 205} p2 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p10 - accept 1 1 {:val, 205} p7 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p2 decided 1 {:val, 205} p11 decided 1 {:val, 205} p10 decided 1 {:val, 205} p4 decided 1 {:val, 205} p7 decided 1 {:val, 205} p5 decided 1 {:val, 205} p7: decided {:val, 205} p5: decided {:val, 205} p10: decided {:val, 205} p11: decided {:val, 205} p4: decided {:val, 205} p2: decided {:val, 205} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p7: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p6 Starting paxos for p7 Starting paxos for p11 Starting paxos for p8 Starting paxos for p5 Starting paxos for p9 Starting paxos for p4 Starting paxos for p2 Starting paxos for p10 Starting paxos for p1 Starting paxos for p3 :p2: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p6: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p1: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p3: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p8: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p7: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p9: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p11: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p5: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p10: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] :p4: started with [:p6, :p8, :p9, :p2, :p10, :p1, :p3, :p7, :p11, :p5, :p4] p6 - Propose 1 with action nil p8 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p11 - p1 is leader p5 - p1 is leader p7 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p1 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p7 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p11 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 206} p3 decided 1 {:val, 206} p7 decided 1 {:val, 206} p11 decided 1 {:val, 206} p5 decided 1 {:val, 206} p4 decided 1 {:val, 206} p5: decided {:val, 206} p3: decided {:val, 206} p7: decided {:val, 206} p4: decided {:val, 206} p11: decided {:val, 206} p1: decided {:val, 206} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p9 Starting paxos for p10 Starting paxos for p11 Starting paxos for p3 Starting paxos for p8 Starting paxos for p4 Starting paxos for p5 Starting paxos for p6 Starting paxos for p2 Starting paxos for p7 Starting paxos for p1 :p9: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p10: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p11: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p3: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p8: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p4: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p5: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p6: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p2: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p7: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] :p1: started with [:p9, :p10, :p11, :p3, :p8, :p4, :p5, :p6, :p2, :p7, :p1] p9 - Propose 1 with action nil p10 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p6 - p1 is leader p5 - p1 is leader p4 - p1 is leader p1 - p1 is leader p2 - p1 is leader p7 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p4 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p7 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 205} p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p1 decided 1 {:val, 205} p7 decided 1 {:val, 205} p6 decided 1 {:val, 205} p2: decided {:val, 205} p7: decided {:val, 205} p1: decided {:val, 205} p5: decided {:val, 205} p6: decided {:val, 205} p4: decided {:val, 205} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p5 Starting paxos for p8 Starting paxos for p11 Starting paxos for p10 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p9 Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 :p5: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p8: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p11: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p10: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p6: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p7: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p3: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p1: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p9: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p2: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] :p4: started with [:p5, :p8, :p11, :p10, :p6, :p7, :p3, :p9, :p1, :p2, :p4] p5 - Propose 1 with action nil p8 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p1 - p1 is leader p7 - p1 is leader p3 - p1 is leader p2 - p1 is leader p9 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p4 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p7 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p1 - accept 1 1 {:val, 201} p9 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 201} p1 decided 1 {:val, 201} p3 decided 1 {:val, 201} p2 decided 1 {:val, 201} p9 decided 1 {:val, 201} p4 decided 1 {:val, 201} p3: decided {:val, 201} p1: decided {:val, 201} p9: decided {:val, 201} p2: decided {:val, 201} p4: decided {:val, 201} p7: decided {:val, 201} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p7 Starting paxos for p2 Starting paxos for p11 Starting paxos for p1 Starting paxos for p9 Starting paxos for p8 Starting paxos for p6 Starting paxos for p10 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 :p7: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p9: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p2: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p11: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p1: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p8: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p6: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p10: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p5: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p4: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] :p3: started with [:p7, :p2, :p11, :p1, :p9, :p8, :p6, :p10, :p5, :p4, :p3] p7 - Propose 1 with action nil p2 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p6 - p10 is leader p8 - p10 is leader p3 - p10 is leader p5 - p10 is leader p4 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p10 - prepare from p10 p3 - prepare from p10 p6 - prepare from p10 p5 - prepare from p10 p4 - prepare from p10 p8 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 204} p8 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p6 decided 1 {:val, 204} p8 decided 1 {:val, 204} p3 decided 1 {:val, 204} p4 decided 1 {:val, 204} p10 decided 1 {:val, 204} p5 decided 1 {:val, 204} p6: decided {:val, 204} p10: decided {:val, 204} p5: decided {:val, 204} p4: decided {:val, 204} p3: decided {:val, 204} p8: decided {:val, 204} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p11 Starting paxos for p10 Starting paxos for p2 Starting paxos for p6 Starting paxos for p7 Starting paxos for p5 Starting paxos for p3 Starting paxos for p9 Starting paxos for p1 Starting paxos for p8 Starting paxos for p4 :p10: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p11: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p7: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p2: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p3: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p6: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p1: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p5: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p9: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p8: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] :p4: started with [:p11, :p10, :p2, :p6, :p7, :p5, :p3, :p9, :p1, :p8, :p4] p10 - Propose 1 with action nil p11 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - p1 is leader p5 - p1 is leader p9 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p8 - p1 is leader p4 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p5 - accept 1 1 {:val, 208} p8 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 208} p1 decided 1 {:val, 208} p8 decided 1 {:val, 208} p3 decided 1 {:val, 208} p9 decided 1 {:val, 208} p4 decided 1 {:val, 208} p9: decided {:val, 208} p3: decided {:val, 208} p8: decided {:val, 208} p1: decided {:val, 208} p4: decided {:val, 208} p5: decided {:val, 208} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p9 Starting paxos for p3 Starting paxos for p7 Starting paxos for p5 Starting paxos for p8 Starting paxos for p11 Starting paxos for p6 Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p10 :p3: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p8: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p11: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p7: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p1: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p6: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p2: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p4: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p10: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p9: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] :p5: started with [:p3, :p7, :p8, :p11, :p6, :p1, :p2, :p4, :p10, :p9, :p5] p3 - Propose 1 with action nil p7 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p9 - p1 is leader p10 - p1 is leader p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p10 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p2 - accept 1 1 {:val, 206} p10 - accept 1 1 {:val, 206} p9 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 206} p2 decided 1 {:val, 206} p10 decided 1 {:val, 206} p4 decided 1 {:val, 206} p9 decided 1 {:val, 206} p5 decided 1 {:val, 206} p5: decided {:val, 206} p2: decided {:val, 206} p9: decided {:val, 206} p4: decided {:val, 206} p10: decided {:val, 206} p1: decided {:val, 206} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p3 Starting paxos for p9 Starting paxos for p10 Starting paxos for p8 Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p11 :p10: started :p1: started spare = [:p11, :p8, :p4, :p1, :p7, :p2] kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] spare = [:p11, :p8, :p4, :p1, :p7, :p2] kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] :p2: started :p4: started :p6: started spare = [:p11, :p8, :p4, :p1, :p7, :p2] :p11: started kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] :p7: started :p5: started :p8: started spare = [:p11, :p8, :p4, :p1, :p7, :p2] kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] :p3: started p2 - Propose 1 with action nil spare = [:p11, :p8, :p4, :p1, :p7, :p2] spare = [:p11, :p8, :p4, :p1, :p7, :p2] :p9: started p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] spare = [:p11, :p8, :p4, :p1, :p7, :p2] p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] spare = [:p11, :p8, :p4, :p1, :p7, :p2] spare = [:p11, :p8, :p4, :p1, :p7, :p2] p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil spare = [:p11, :p8, :p4, :p1, :p7, :p2] p5 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil spare = [:p11, :p8, :p4, :p1, :p7, :p2] kill: leaders, followers = [:p9, :p5], [:p6, :p3, :p10] p9 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p5 - p1 is leader p8 - p1 is leader p9 - p1 is leader p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p5 - prepare from p1 p7 - prepare from p1 p8 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p4 - p1 is leader p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p11 - accept 1 1 {:val, 202} p9 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p1 Try to run prepared p2 - p1 is leader p1 11 7 true p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 202} p7 - accept 1 1 {:val, 202} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 202} p8 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 202} p11 decided 1 {:val, 202} p4 decided 1 {:val, 202} p8 decided 1 {:val, 202} p7 decided 1 {:val, 202} p9 decided 1 {:val, 202} p2 decided 1 {:val, 202} p1 accepted 1 1 p1 decided 1 {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 202} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 202} p11 - p1 is leader p11: decided {:val, 202} p2: decided {:val, 202} p1: decided {:val, 202} p4: decided {:val, 202} p7: decided {:val, 202} p8: decided {:val, 202} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p9 Starting paxos for p6 Starting paxos for p10 Starting paxos for p7 Starting paxos for p4 Starting paxos for p1 Starting paxos for p5 Starting paxos for p8 Starting paxos for p3 Starting paxos for p2 Starting paxos for p11 :p3: started spare = [:p6, :p2, :p1, :p11, :p8, :p5] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] :p8: started :p5: started :p4: started :p7: started spare = [:p6, :p2, :p1, :p11, :p8, :p5] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] :p9: started spare = [:p6, :p2, :p1, :p11, :p8, :p5] spare = [:p6, :p2, :p1, :p11, :p8, :p5] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] spare = [:p6, :p2, :p1, :p11, :p8, :p5] :p6: started :p10: started kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] :p11: started :p1: started p4 - Propose 1 with action nil :p2: started p4 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil spare = [:p6, :p2, :p1, :p11, :p8, :p5] spare = [:p6, :p2, :p1, :p11, :p8, :p5] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil spare = [:p6, :p2, :p1, :p11, :p8, :p5] spare = [:p6, :p2, :p1, :p11, :p8, :p5] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] spare = [:p6, :p2, :p1, :p11, :p8, :p5] spare = [:p6, :p2, :p1, :p11, :p8, :p5] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] p10 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] kill: leaders, followers = [:p4, :p10], [:p7, :p3, :p9] p6 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p6 - Propose 1 with action nil p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p5 - accept 1 1 {:val, 202} p1 accepted 1 1 p5 - p1 is leader p6 - accept 1 1 {:val, 202} p1 accepted 1 1 p11 - accept 1 1 {:val, 202} p8 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p8 - p1 is leader p2 - accept 1 1 {:val, 202} p1 accepted 1 1 p2 - p1 is leader p1 decided 1 {:val, 202} p11 decided 1 {:val, 202} p5 decided 1 {:val, 202} p8 decided 1 {:val, 202} p6 decided 1 {:val, 202} p2 decided 1 {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p8: decided {:val, 202} p5: decided {:val, 202} p6: decided {:val, 202} p1: decided {:val, 202} p11: decided {:val, 202} p2: decided {:val, 202} p11 - p1 is leader p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p10 Starting paxos for p6 Starting paxos for p3 Starting paxos for p9 Starting paxos for p1 Starting paxos for p7 Starting paxos for p5 Starting paxos for p8 Starting paxos for p4 Starting paxos for p11 :p8: started :p4: started spare = [:p9, :p11, :p5, :p1, :p4, :p8] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] :p2: started :p10: started :p7: started spare = [:p9, :p11, :p5, :p1, :p4, :p8] :p11: started :p1: started :p6: started kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] p8 - Propose 1 with action nil :p5: started p8 SET BALLOT VALUE 3 nil spare = [:p9, :p11, :p5, :p1, :p4, :p8] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] spare = [:p9, :p11, :p5, :p1, :p4, :p8] spare = [:p9, :p11, :p5, :p1, :p4, :p8] spare = [:p9, :p11, :p5, :p1, :p4, :p8] spare = [:p9, :p11, :p5, :p1, :p4, :p8] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] p6 SET BALLOT VALUE 3 nil spare = [:p9, :p11, :p5, :p1, :p4, :p8] p10 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] p7 SET BALLOT VALUE 3 nil spare = [:p9, :p11, :p5, :p1, :p4, :p8] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] p9 SET BALLOT VALUE 3 nil :p9: started spare = [:p9, :p11, :p5, :p1, :p4, :p8] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] :p3: started p3 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil spare = [:p9, :p11, :p5, :p1, :p4, :p8] kill: leaders, followers = [:p6, :p10], [:p7, :p3, :p2] p11 SET BALLOT VALUE 3 nil p9 - p1 is leader p5 - p1 is leader p8 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p5 - prepare from p1 p11 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - p1 is leader p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p9 - accept 1 1 {:val, 202} p1 SET BALLOT VALUE {:val, 202} p8 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p5 - accept 1 1 {:val, 202} p1 accepted 1 1 p4 - accept 1 1 {:val, 202} p1 accepted 1 1 p11 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p9 decided 1 {:val, 202} p4 decided 1 {:val, 202} p5 decided 1 {:val, 202} p8 decided 1 {:val, 202} p11 decided 1 {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p11 - p1 is leader p8: decided {:val, 202} p9: decided {:val, 202} p1: decided {:val, 202} p4: decided {:val, 202} p5: decided {:val, 202} p11: decided {:val, 202} p11: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p9 Starting paxos for p10 Starting paxos for p7 Starting paxos for p2 Starting paxos for p8 Starting paxos for p6 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 Starting paxos for p11 :p3: started :p4: started spare = [:p1, :p5, :p3, :p6, :p4, :p8] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] spare = [:p1, :p5, :p3, :p6, :p4, :p8] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] :p9: started :p1: started :p11: started :p10: started :p8: started :p2: started :p6: started :p7: started spare = [:p1, :p5, :p3, :p6, :p4, :p8] spare = [:p1, :p5, :p3, :p6, :p4, :p8] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] :p5: started p9 - Propose 1 with action nil spare = [:p1, :p5, :p3, :p6, :p4, :p8] spare = [:p1, :p5, :p3, :p6, :p4, :p8] p9 SET BALLOT VALUE 3 nil spare = [:p1, :p5, :p3, :p6, :p4, :p8] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] spare = [:p1, :p5, :p3, :p6, :p4, :p8] spare = [:p1, :p5, :p3, :p6, :p4, :p8] spare = [:p1, :p5, :p3, :p6, :p4, :p8] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] p3 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] p7 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] p8 SET BALLOT VALUE 3 nil spare = [:p1, :p5, :p3, :p6, :p4, :p8] p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p7], [:p2, :p10, :p11] p8 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 - p1 is leader p7 - p1 is leader p6 - p1 is leader p4 - p1 is leader p3 - p1 is leader p8 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p8 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p6 - prepare from p1 p1 11 3 false p7 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p7 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p8 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p1 SET BALLOT VALUE {:val, 208} p4 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p3 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p6 decided 1 {:val, 208} p9 decided 1 {:val, 208} p4 decided 1 {:val, 208} p8 decided 1 {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p3: decided {:val, 208} p1: decided {:val, 208} p8: decided {:val, 208} p4: decided {:val, 208} p5: decided {:val, 208} p6: decided {:val, 208} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p8 Starting paxos for p5 Starting paxos for p3 Starting paxos for p6 Starting paxos for p10 Starting paxos for p2 Starting paxos for p7 Starting paxos for p4 Starting paxos for p1 Starting paxos for p9 Starting paxos for p11 :p1: started :p11: started spare = [:p7, :p1, :p4, :p6, :p3, :p9] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] spare = [:p7, :p1, :p4, :p6, :p3, :p9] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil :p10: started p10 SET BALLOT VALUE 3 nil :p4: started p4 SET BALLOT VALUE 3 nil :p9: started :p6: started spare = [:p7, :p1, :p4, :p6, :p3, :p9] p3 SET BALLOT VALUE 3 nil :p3: started kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] p9 SET BALLOT VALUE 3 nil :p5: started :p7: started p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p8: started spare = [:p7, :p1, :p4, :p6, :p3, :p9] p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] spare = [:p7, :p1, :p4, :p6, :p3, :p9] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] spare = [:p7, :p1, :p4, :p6, :p3, :p9] spare = [:p7, :p1, :p4, :p6, :p3, :p9] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] spare = [:p7, :p1, :p4, :p6, :p3, :p9] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] p2 SET BALLOT VALUE 3 nil :p2: started spare = [:p7, :p1, :p4, :p6, :p3, :p9] spare = [:p7, :p1, :p4, :p6, :p3, :p9] p9 - Propose 1 with action nil kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] p5 - Propose 1 with action nil p7 - Propose 1 with action nil spare = [:p7, :p1, :p4, :p6, :p3, :p9] kill: leaders, followers = [:p11, :p5], [:p8, :p2, :p10] p3 - p1 is leader p6 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p7 - prepare from p1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p9 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p7 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p9 - p1 is leader p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p9 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 - accept 1 1 {:val, 208} p1 accepted 1 1 p6 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p4 decided 1 {:val, 208} p6 decided 1 {:val, 208} p3 decided 1 {:val, 208} p7 decided 1 {:val, 208} p9 decided 1 {:val, 208} p3: decided {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p6: decided {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 208} p7: decided {:val, 208} p9: decided {:val, 208} p1: decided {:val, 208} p4: decided {:val, 208} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p9 Starting paxos for p8 Starting paxos for p4 Starting paxos for p3 Starting paxos for p6 Starting paxos for p1 Starting paxos for p2 Starting paxos for p10 Starting paxos for p7 Starting paxos for p11 :p3: started spare = [:p7, :p2, :p1, :p4, :p8, :p5] kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] :p7: started p3 - Propose 1 with action nil :p6: started p3 SET BALLOT VALUE 3 nil :p1: started :p8: started p4 SET BALLOT VALUE 3 nil :p2: started p1 SET BALLOT VALUE 3 nil :p9: started spare = [:p7, :p2, :p1, :p4, :p8, :p5] p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil spare = [:p7, :p2, :p1, :p4, :p8, :p5] p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] p6 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] :p4: started spare = [:p7, :p2, :p1, :p4, :p8, :p5] spare = [:p7, :p2, :p1, :p4, :p8, :p5] :p11: started p11 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] p7 - Propose 1 with action nil spare = [:p7, :p2, :p1, :p4, :p8, :p5] kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] :p5: started spare = [:p7, :p2, :p1, :p4, :p8, :p5] p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] spare = [:p7, :p2, :p1, :p4, :p8, :p5] kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] p11 - Propose 1 with action nil spare = [:p7, :p2, :p1, :p4, :p8, :p5] kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] spare = [:p7, :p2, :p1, :p4, :p8, :p5] kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] :p10: started p10 SET BALLOT VALUE 3 nil spare = [:p7, :p2, :p1, :p4, :p8, :p5] kill: leaders, followers = [:p3, :p11], [:p6, :p9, :p10] p5 - Propose 1 with action nil p5 - p1 is leader p8 - p1 is leader p3 - p1 is leader p1 - p1 is leader p7 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p11 - prepare from p1 p8 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p4 - p1 is leader p2 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 203} p7 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 203} p1 Try to run prepared p1 11 7 true p4 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p11 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p8 - accept 1 1 {:val, 203} p1 accepted 1 1 p2 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 203} p8 decided 1 {:val, 203} p11 decided 1 {:val, 203} p4 decided 1 {:val, 203} p7 decided 1 {:val, 203} p5 decided 1 {:val, 203} p1 decided 1 {:val, 203} p3 decided 1 {:val, 203} p1 accepted 1 1 p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 203} p5: decided {:val, 203} p7: decided {:val, 203} p1: decided {:val, 203} p8: decided {:val, 203} p2: decided {:val, 203} p4: decided {:val, 203} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p4 Starting paxos for p10 Starting paxos for p5 Starting paxos for p2 Starting paxos for p6 Starting paxos for p1 Starting paxos for p8 Starting paxos for p3 Starting paxos for p9 Starting paxos for p7 Starting paxos for p11 :p6: started spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] :p10: started :p7: started :p5: started :p2: started :p11: started :p4: started :p8: started spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] spare = [:p1, :p6, :p9, :p8, :p3, :p7] :p1: started kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] p7 - Propose 1 with action nil spare = [:p1, :p6, :p9, :p8, :p3, :p7] p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] :p3: started spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil spare = [:p1, :p6, :p9, :p8, :p3, :p7] p11 - Propose 1 with action nil kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] p1 SET BALLOT VALUE 3 nil :p9: started p11 SET BALLOT VALUE 3 nil spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] p9 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil spare = [:p1, :p6, :p9, :p8, :p3, :p7] kill: leaders, followers = [:p4, :p11], [:p5, :p2, :p10] p8 SET BALLOT VALUE 3 nil p4 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p6 - prepare from p1 p11 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p7 - prepare from p1 p8 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p8 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p3 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p11 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p9 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p1 Try to run prepared p9 - p1 is leader p8 - accept 1 1 {:val, 208} p1 11 7 true p1 - prepared 1 1 nil nil p6 - accept 1 1 {:val, 208} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p11 decided 1 {:val, 208} p4 decided 1 {:val, 208} p3 decided 1 {:val, 208} p7 decided 1 {:val, 208} p6 decided 1 {:val, 208} p9 decided 1 {:val, 208} p8 decided 1 {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - p1 is leader p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 208} p7: decided {:val, 208} p1: decided {:val, 208} p6: decided {:val, 208} p8: decided {:val, 208} p3: decided {:val, 208} p9: decided {:val, 208} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p4 Starting paxos for p10 Starting paxos for p9 Starting paxos for p5 Starting paxos for p7 Starting paxos for p8 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p6 Starting paxos for p11 :p8: started spare = [:p9, :p10, :p2, :p1, :p3, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] :p10: started :p4: started :p5: started :p1: started :p9: started :p6: started :p11: started spare = [:p9, :p10, :p2, :p1, :p3, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] spare = [:p9, :p10, :p2, :p1, :p3, :p6] spare = [:p9, :p10, :p2, :p1, :p3, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] spare = [:p9, :p10, :p2, :p1, :p3, :p6] spare = [:p9, :p10, :p2, :p1, :p3, :p6] :p7: started spare = [:p9, :p10, :p2, :p1, :p3, :p6] spare = [:p9, :p10, :p2, :p1, :p3, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil :p2: started :p3: started p5 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil spare = [:p9, :p10, :p2, :p1, :p3, :p6] p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] p3 SET BALLOT VALUE 3 nil spare = [:p9, :p10, :p2, :p1, :p3, :p6] p6 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] p6 SET BALLOT VALUE 3 nil spare = [:p9, :p10, :p2, :p1, :p3, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p7, :p8] p1 SET BALLOT VALUE 3 nil p10 - p1 is leader p9 - p1 is leader p3 - p1 is leader p2 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p10 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p9 - accept 1 1 {:val, 202} p1 SET BALLOT VALUE {:val, 202} p6 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p10 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 decided 1 {:val, 202} p3 decided 1 {:val, 202} p9 decided 1 {:val, 202} p6 decided 1 {:val, 202} p10 decided 1 {:val, 202} p2 decided 1 {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p9: decided {:val, 202} p6: decided {:val, 202} p10: decided {:val, 202} p1: decided {:val, 202} p2: decided {:val, 202} p3: decided {:val, 202} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p8 Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p4 Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 Starting paxos for p3 Starting paxos for p11 :p11: started :p10: started :p1: started spare = [:p11, :p6, :p4, :p5, :p1, :p2] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] spare = [:p11, :p6, :p4, :p5, :p1, :p2] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] :p5: started :p9: started :p3: started :p4: started :p8: started spare = [:p11, :p6, :p4, :p5, :p1, :p2] :p7: started :p2: started p11 - Propose 1 with action nil kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] :p6: started p11 SET BALLOT VALUE 3 nil spare = [:p11, :p6, :p4, :p5, :p1, :p2] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] spare = [:p11, :p6, :p4, :p5, :p1, :p2] spare = [:p11, :p6, :p4, :p5, :p1, :p2] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil spare = [:p11, :p6, :p4, :p5, :p1, :p2] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] spare = [:p11, :p6, :p4, :p5, :p1, :p2] spare = [:p11, :p6, :p4, :p5, :p1, :p2] p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] p9 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil spare = [:p11, :p6, :p4, :p5, :p1, :p2] p9 - Propose 1 with action nil kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] p1 SET BALLOT VALUE 3 nil spare = [:p11, :p6, :p4, :p5, :p1, :p2] kill: leaders, followers = [:p9, :p8], [:p7, :p3, :p10] p2 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 - p1 is leader p2 - p1 is leader p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p11 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 201} p4 decided 1 {:val, 201} p6 decided 1 {:val, 201} p5 decided 1 {:val, 201} p11 decided 1 {:val, 201} p2 decided 1 {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p5: decided {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p4: decided {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p6: decided {:val, 201} p2: decided {:val, 201} p11: decided {:val, 201} p11 - p1 is leader p1: decided {:val, 201} p11: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p8 Starting paxos for p2 Starting paxos for p1 Starting paxos for p9 Starting paxos for p10 Starting paxos for p4 Starting paxos for p11 :p7: started :p5: started spare = [:p4, :p7, :p11, :p9, :p5, :p2] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] :p6: started :p8: started :p11: started :p4: started spare = [:p4, :p7, :p11, :p9, :p5, :p2] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] :p1: started :p2: started spare = [:p4, :p7, :p11, :p9, :p5, :p2] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] :p10: started spare = [:p4, :p7, :p11, :p9, :p5, :p2] spare = [:p4, :p7, :p11, :p9, :p5, :p2] :p3: started kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] spare = [:p4, :p7, :p11, :p9, :p5, :p2] :p9: started kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] spare = [:p4, :p7, :p11, :p9, :p5, :p2] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] spare = [:p4, :p7, :p11, :p9, :p5, :p2] spare = [:p4, :p7, :p11, :p9, :p5, :p2] spare = [:p4, :p7, :p11, :p9, :p5, :p2] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil spare = [:p4, :p7, :p11, :p9, :p5, :p2] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p3], [:p6, :p8, :p1] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 - p1 is leader p7 - p1 is leader p3 - p1 is leader p2 - p1 is leader p9 - p1 is leader p10 - p1 is leader p4 - p1 is leader p11 - p1 is leader p5 - p10 is leader p7 - p10 is leader p2 - p10 is leader p9 - p10 is leader p4 - p10 is leader p11 - p10 is leader p5 - p11 is leader p7 - p11 is leader p2 - p11 is leader p9 - p11 is leader p4 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p7 - prepare from p11 p11 - prepare from p11 p9 - prepare from p11 p5 - prepare from p11 p2 - prepare from p11 p4 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p2 - accept 1 1 {:val, 201} p11 SET BALLOT VALUE {:val, 201} p11 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p4 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p9 - accept 1 1 {:val, 201} p11 accepted 1 1 p7 - accept 1 1 {:val, 201} p11 accepted 1 1 p4 decided 1 {:val, 201} p5 decided 1 {:val, 201} p2 decided 1 {:val, 201} p11 decided 1 {:val, 201} p9 decided 1 {:val, 201} p7 decided 1 {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 201} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 201} p2: decided {:val, 201} p4: decided {:val, 201} p5: decided {:val, 201} p11: decided {:val, 201} p7: decided {:val, 201} p9: decided {:val, 201} p11: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p5 Starting paxos for p9 Starting paxos for p11 Starting paxos for p6 Starting paxos for p10 Starting paxos for p4 Starting paxos for p1 Starting paxos for p2 Starting paxos for p7 Starting paxos for p3 Starting paxos for p8 :p5: started :p8: started :p9: started :p11: started :p6: started :p10: started :p4: started :p1: started :p7: started :p2: started :p3: started spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] spare = [:p4, :p1, :p2, :p7, :p3, :p8] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] kill: leaders, followers = [:p5, :p9], [:p11, :p6, :p10] p5 - Propose 1 with action nil p9 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p4 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p7 - prepare from p1 p8 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p3 - p1 is leader p2 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p8 - p1 is leader p7 - p1 is leader p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 203} p8 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p1 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 203} p2 decided 1 {:val, 203} p1 decided 1 {:val, 203} p3 decided 1 {:val, 203} p4 decided 1 {:val, 203} p8 decided 1 {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 203} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 203} p3: decided {:val, 203} p2: decided {:val, 203} p1: decided {:val, 203} p7: decided {:val, 203} p8: decided {:val, 203} p4: decided {:val, 203} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p7 Starting paxos for p11 Starting paxos for p6 Starting paxos for p1 Starting paxos for p5 Starting paxos for p8 Starting paxos for p2 Starting paxos for p4 Starting paxos for p10 Starting paxos for p3 Starting paxos for p9 :p7: started :p9: started :p11: started :p6: started :p1: started :p5: started :p4: started :p8: started :p3: started :p2: started :p10: started spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] spare = [:p1, :p8, :p2, :p4, :p10, :p3] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] kill: leaders, followers = [:p7, :p6], [:p5, :p9, :p11] p7 - Propose 1 with action nil p6 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 - p1 is leader p8 - p1 is leader p3 - p1 is leader p2 - p1 is leader p10 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p1 - prepare from p1 p10 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p8 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p10 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 205} p8 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p10 decided 1 {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 205} p1 decided 1 {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p8: decided {:val, 205} p10: decided {:val, 205} p3: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p11 Starting paxos for p6 Starting paxos for p7 Starting paxos for p8 Starting paxos for p3 Starting paxos for p10 Starting paxos for p1 Starting paxos for p2 Starting paxos for p9 Starting paxos for p4 Starting paxos for p5 :p11: started :p3: started :p6: started :p7: started :p10: started :p8: started :p2: started :p1: started :p9: started :p4: started :p5: started spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] spare = [:p10, :p1, :p2, :p9, :p4, :p5] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] kill: leaders, followers = [:p11, :p6], [:p7, :p8, :p3] p11 - Propose 1 with action nil p6 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - p1 is leader p10 - p1 is leader p2 - p1 is leader p9 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p10 - prepare from p1 p4 - p1 is leader p5 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p10 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p9 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 210} p4 decided 1 {:val, 210} p10 decided 1 {:val, 210} p1 decided 1 {:val, 210} p2 decided 1 {:val, 210} p9 decided 1 {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p2: decided {:val, 210} p9: decided {:val, 210} p1: decided {:val, 210} p4: decided {:val, 210} p5: decided {:val, 210} p10: decided {:val, 210} p10: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p7 Starting paxos for p11 Starting paxos for p4 Starting paxos for p8 Starting paxos for p6 Starting paxos for p1 Starting paxos for p2 Starting paxos for p9 Starting paxos for p10 Starting paxos for p3 Starting paxos for p5 :p4: started :p7: started :p6: started :p11: started :p8: started :p2: started :p1: started :p9: started :p3: started :p10: started :p5: started spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] spare = [:p1, :p2, :p9, :p10, :p3, :p5] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] kill: leaders, followers = [:p7, :p11], [:p4, :p8, :p6] p7 - Propose 1 with action nil p11 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p1 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p9 - prepare from p1 p10 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p5 - p1 is leader p1 11 1 false p3 - p1 is leader p10 - p1 is leader p9 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p1 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p10 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p9 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 205} p9 decided 1 {:val, 205} p5 decided 1 {:val, 205} p10 decided 1 {:val, 205} p3 decided 1 {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p1 decided 1 {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p9: decided {:val, 205} p10: decided {:val, 205} p2: decided {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p7 Starting paxos for p11 Starting paxos for p9 Starting paxos for p10 Starting paxos for p5 Starting paxos for p8 Starting paxos for p2 Starting paxos for p3 Starting paxos for p6 Starting paxos for p1 :p4: started :p7: started :p11: started :p9: started :p10: started :p5: started :p8: started :p2: started :p3: started :p6: started :p1: started spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] spare = [:p5, :p8, :p2, :p3, :p6, :p1] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] kill: leaders, followers = [:p4, :p7], [:p11, :p9, :p10] p4 - Propose 1 with action nil p7 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 - p1 is leader p5 - p1 is leader p8 - p1 is leader p6 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p8 - prepare from p1 p6 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p3 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p8 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 205} p8 decided 1 {:val, 205} p3 decided 1 {:val, 205} p2 decided 1 {:val, 205} p5 decided 1 {:val, 205} p1 decided 1 {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p2: decided {:val, 205} p6: decided {:val, 205} p3: decided {:val, 205} p8: decided {:val, 205} p1: decided {:val, 205} p5: decided {:val, 205} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p5 Starting paxos for p11 Starting paxos for p2 Starting paxos for p10 Starting paxos for p1 Starting paxos for p3 Starting paxos for p8 Starting paxos for p7 Starting paxos for p9 Starting paxos for p4 Starting paxos for p6 :p5: started :p11: started :p2: started :p10: started :p1: started :p3: started :p8: started :p7: started :p9: started :p4: started :p6: started spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] spare = [:p3, :p8, :p7, :p9, :p4, :p6] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] kill: leaders, followers = [:p5, :p11], [:p2, :p10, :p1] p5 - Propose 1 with action nil p11 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p3 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - p11 is leader p4 - p11 is leader p8 - p11 is leader p7 - p11 is leader p3 - p11 is leader p6 - p11 is leader p8 - p3 is leader p9 - p3 is leader p3 - p3 is leader p7 - p3 is leader p4 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p7 - prepare from p3 p4 - prepare from p3 p6 - prepare from p3 p9 - prepare from p3 p8 - prepare from p3 p3 - prepare from p3 p6 - p3 is leader p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 3 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 4 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 5 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 6 false p3 SET BALLOT VALUE {:val, 202} p4 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p9 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p8 - accept 1 1 {:val, 202} p7 - accept 1 1 {:val, 202} p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p9 decided 1 {:val, 202} p7 decided 1 {:val, 202} p6 decided 1 {:val, 202} p4 decided 1 {:val, 202} p8 decided 1 {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p3 decided 1 {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p6: decided {:val, 202} p3: decided {:val, 202} p7: decided {:val, 202} p8: decided {:val, 202} p4: decided {:val, 202} p9: decided {:val, 202} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p9 Starting paxos for p7 Starting paxos for p5 Starting paxos for p8 Starting paxos for p1 Starting paxos for p2 Starting paxos for p11 Starting paxos for p3 Starting paxos for p4 Starting paxos for p6 Starting paxos for p10 :p9: started :p8: started :p7: started :p4: started :p5: started :p2: started :p1: started :p11: started :p3: started :p6: started :p10: started spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] spare = [:p2, :p11, :p3, :p4, :p6, :p10] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] kill: leaders, followers = [:p9, :p7], [:p5, :p8, :p1] p9 - Propose 1 with action nil p7 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p2 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p11 - p10 is leader p2 - p10 is leader p3 - p10 is leader p4 - p10 is leader p6 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p4 - prepare from p10 p2 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p11 - prepare from p10 p6 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 210} p6 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p11 decided 1 {:val, 210} p6 decided 1 {:val, 210} p4 decided 1 {:val, 210} p10 decided 1 {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p4: decided {:val, 210} p3: decided {:val, 210} p6: decided {:val, 210} p11: decided {:val, 210} p10: decided {:val, 210} p2: decided {:val, 210} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p8 Starting paxos for p11 Starting paxos for p2 Starting paxos for p4 Starting paxos for p5 Starting paxos for p9 Starting paxos for p7 Starting paxos for p1 Starting paxos for p6 Starting paxos for p10 :p1: started :p3: started :p10: started :p11: started :p6: started :p5: started :p2: started :p4: started :p9: started :p7: started :p8: started spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] spare = [:p7, :p1, :p10, :p8, :p6, :p5] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] kill: leaders, followers = [:p3, :p11], [:p2, :p4, :p9] p3 - Propose 1 with action nil p11 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 - p1 is leader p1 - p1 is leader p8 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p10 - prepare from p1 p5 - prepare from p1 p8 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p10 - p1 is leader p1 Try to run prepared p6 - p1 is leader p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p10 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p8 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p1 accepted 1 1 p5 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 208} p6 decided 1 {:val, 208} p5 decided 1 {:val, 208} p1 decided 1 {:val, 208} p8 decided 1 {:val, 208} p10 decided 1 {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p6: decided {:val, 208} p1: decided {:val, 208} p8: decided {:val, 208} p10: decided {:val, 208} p7: decided {:val, 208} p5: decided {:val, 208} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p11 Starting paxos for p2 Starting paxos for p8 Starting paxos for p9 Starting paxos for p10 Starting paxos for p1 :p7: started :p3: started :p11: started :p4: started :p8: started :p5: started :p9: started :p10: started :p6: started :p2: started :p1: started spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] spare = [:p11, :p2, :p8, :p9, :p10, :p1] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] kill: leaders, followers = [:p3, :p4], [:p5, :p6, :p7] p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 - p1 is leader p8 - p1 is leader p2 - p1 is leader p1 - p1 is leader p10 - p1 is leader p9 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p8 - prepare from p1 p1 - prepared 1 1 nil nil Probably recieved this before preare came to self sending with delay p9 - prepare from p1 p10 - prepare from p1 p11 - prepare from p1 p1 - prepared 1 1 nil nil Probably recieved this before preare came to self sending with delay p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p10 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p8 - accept 1 1 {:val, 205} p9 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 decided 1 {:val, 205} p2 decided 1 {:val, 205} p9 decided 1 {:val, 205} p10 decided 1 {:val, 205} p11 decided 1 {:val, 205} p1 decided 1 {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 205} p1: decided {:val, 205} p11: decided {:val, 205} p10: decided {:val, 205} p9: decided {:val, 205} p2: decided {:val, 205} p8: decided {:val, 205} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p8 Starting paxos for p7 Starting paxos for p1 Starting paxos for p11 Starting paxos for p9 Starting paxos for p10 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 Starting paxos for p6 Starting paxos for p4 :p8: started :p11: started :p7: started :p10: started :p1: started :p3: started :p9: started :p5: started :p2: started :p6: started :p4: started spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] spare = [:p10, :p2, :p3, :p5, :p6, :p4] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] kill: leaders, followers = [:p8, :p7], [:p1, :p11, :p9] p8 - Propose 1 with action nil p7 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 - p10 is leader p2 - p10 is leader p10 - p10 is leader p5 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p3 - prepare from p10 p5 - prepare from p10 p10 - prepare from p10 p4 - prepare from p10 p6 - prepare from p10 p2 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p6 - p10 is leader p10 Try to run prepared p4 - p10 is leader p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 210} p10 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p4 decided 1 {:val, 210} p6 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p5 decided 1 {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p10 decided 1 {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p6: decided {:val, 210} p3: decided {:val, 210} p5: decided {:val, 210} p2: decided {:val, 210} p4: decided {:val, 210} p10: decided {:val, 210} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p7 Starting paxos for p8 Starting paxos for p10 Starting paxos for p9 Starting paxos for p3 Starting paxos for p5 Starting paxos for p2 Starting paxos for p6 Starting paxos for p1 Starting paxos for p4 Starting paxos for p11 :p1: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] :p9: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] :p11: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] p9 - Propose 1 with action nil :p2: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] p9 SET BALLOT VALUE 3 nil :p7: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] :p10: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] p7 SET BALLOT VALUE 3 nil :p5: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] :p6: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] :p8: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] p6 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p3: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p4: started with [:p5, :p10, :p8, :p11, :p7, :p9, :p2, :p1, :p3, :p6, :p4] p8 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p9 - p1 is leader p3 - p1 is leader p2 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p9 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p4 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p6 - accept 1 1 {:val, 203} p1 SET BALLOT VALUE {:val, 203} p9 - accept 1 1 {:val, 203} p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p3 - accept 1 1 {:val, 203} p1 accepted 1 1 p4 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 203} p9 decided 1 {:val, 203} p3 decided 1 {:val, 203} p2 decided 1 {:val, 203} p4 decided 1 {:val, 203} p6 decided 1 {:val, 203} p1: decided {:val, 203} p9: decided {:val, 203} p2: decided {:val, 203} p6: decided {:val, 203} p3: decided {:val, 203} p4: decided {:val, 203} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p1 Starting paxos for p5 Starting paxos for p6 Starting paxos for p8 Starting paxos for p10 Starting paxos for p7 Starting paxos for p4 Starting paxos for p2 Starting paxos for p9 Starting paxos for p3 Starting paxos for p11 :p6: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p3: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p11: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p4: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p7: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p9: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p5: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p2: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p10: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] :p1: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p8: started with [:p1, :p8, :p7, :p4, :p2, :p10, :p11, :p5, :p3, :p9, :p6] p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p10 - prepare from p1 p9 - prepare from p1 p5 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p8 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p1 - prepared 1 1 nil nil p10 - accept 1 1 {:val, 202} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p11 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 11 8 true p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p11 decided 1 {:val, 202} p8 decided 1 {:val, 202} p6 decided 1 {:val, 202} p10 decided 1 {:val, 202} p3 decided 1 {:val, 202} p5 - accept 1 1 {:val, 202} p5 decided 1 {:val, 202} p1 accepted 1 1 p5 - p1 is leader p9 - accept 1 1 {:val, 202} p9 decided 1 {:val, 202} p6 - p1 is leader p10 - p1 is leader p3 - p1 is leader p9 - p1 is leader p10: decided {:val, 202} p11 - p1 is leader p6: decided {:val, 202} p3: decided {:val, 202} p11: decided {:val, 202} p9: decided {:val, 202} p5: decided {:val, 202} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p7 Starting paxos for p6 Starting paxos for p8 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p10 Starting paxos for p3 Starting paxos for p5 Starting paxos for p9 Starting paxos for p11 :p10: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] :p1: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] :p11: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] :p2: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil :p3: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] p1 SET BALLOT VALUE 3 nil :p8: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p4: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] :p6: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] p5 SET BALLOT VALUE 3 nil :p7: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] p6 - Propose 1 with action nil :p5: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] :p9: started with [:p6, :p11, :p7, :p8, :p5, :p3, :p2, :p10, :p9, :p1, :p4] p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p3 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p10 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p10 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p6 - accept 1 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p1 - prepared 1 1 nil nil p6 - p1 is leader p3 - p1 is leader p1 Try to run prepared p4 - accept 1 1 {:val, 206} p10 - accept 1 1 {:val, 206} p1 11 7 true p4 - p1 is leader p1 - accept 1 1 {:val, 206} p9 - accept 1 1 {:val, 206} p1 accepted 1 1 p2 - accept 1 1 {:val, 206} p1 accepted 1 1 p9 - p1 is leader p1 accepted 1 1 p2 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 206} p9 decided 1 {:val, 206} p10 decided 1 {:val, 206} p4 decided 1 {:val, 206} p6 decided 1 {:val, 206} p3 decided 1 {:val, 206} p1 decided 1 {:val, 206} p3: decided {:val, 206} p10: decided {:val, 206} p1: decided {:val, 206} p2: decided {:val, 206} p4: decided {:val, 206} p9: decided {:val, 206} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p10: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p5 Starting paxos for p7 Starting paxos for p10 Starting paxos for p8 Starting paxos for p9 Starting paxos for p4 Starting paxos for p6 Starting paxos for p3 Starting paxos for p1 Starting paxos for p11 :p6: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] :p2: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] :p4: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p5: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] :p8: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil :p9: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p10: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] :p11: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] :p3: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] :p1: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] :p7: started with [:p7, :p6, :p11, :p3, :p9, :p2, :p8, :p4, :p5, :p1, :p10] p7 - Propose 1 with action nil p5 - p1 is leader p2 - p1 is leader p7 - p1 is leader p4 - p1 is leader p8 - p1 is leader p1 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p6 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p8 - prepare from p1 p10 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p6 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p10 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p7 - accept 1 1 {:val, 206} p1 - prepared 1 1 nil nil p8 - accept 1 1 {:val, 206} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - accept 1 1 {:val, 206} p1 11 8 true p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 206} p7 decided 1 {:val, 206} p5 decided 1 {:val, 206} p8 decided 1 {:val, 206} p2 decided 1 {:val, 206} p10 decided 1 {:val, 206} p6 decided 1 {:val, 206} p1 decided 1 {:val, 206} p2: decided {:val, 206} p4: decided {:val, 206} p8: decided {:val, 206} p5: decided {:val, 206} p10: decided {:val, 206} p1: decided {:val, 206} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p10 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p9 Starting paxos for p6 Starting paxos for p5 Starting paxos for p7 Starting paxos for p8 Starting paxos for p4 Starting paxos for p11 :p11: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil :p8: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p9: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] :p4: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] :p3: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p7: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p3 SET BALLOT VALUE 3 nil :p1: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p2 SET BALLOT VALUE 3 nil :p10: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p5 SET BALLOT VALUE 3 nil :p2: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p1 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p6: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] :p5: started with [:p1, :p11, :p3, :p10, :p2, :p6, :p9, :p4, :p5, :p8, :p7] p6 - Propose 1 with action nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p9 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p11 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p11 - accept 1 1 {:val, 202} p1 11 7 true p4 - accept 1 1 {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p7 - accept 1 1 {:val, 202} p4 - p1 is leader p5 - accept 1 1 {:val, 202} p1 accepted 1 1 p6 - p1 is leader p7 - p1 is leader p5 - p1 is leader p1 accepted 1 1 p9 - accept 1 1 {:val, 202} p8 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 202} p9 decided 1 {:val, 202} p1 decided 1 {:val, 202} p7 decided 1 {:val, 202} p6 decided 1 {:val, 202} p5 decided 1 {:val, 202} p11 decided 1 {:val, 202} p8 - p1 is leader p1 accepted 1 1 p8 decided 1 {:val, 202} p8: decided {:val, 202} p4: decided {:val, 202} p7: decided {:val, 202} p9: decided {:val, 202} p6: decided {:val, 202} p5: decided {:val, 202} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p10 Starting paxos for p3 Starting paxos for p8 Starting paxos for p5 Starting paxos for p9 Starting paxos for p1 Starting paxos for p7 Starting paxos for p6 Starting paxos for p4 Starting paxos for p11 :p7: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] :p9: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] :p4: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil :p3: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] :p5: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] p9 - Propose 1 with action nil :p1: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] :p8: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p6: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] :p10: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p2: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] p6 SET BALLOT VALUE 3 nil :p11: started with [:p7, :p9, :p6, :p2, :p4, :p11, :p3, :p5, :p8, :p1, :p10] p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p3 - p1 is leader p5 - p1 is leader p8 - p1 is leader p1 - p1 is leader p10 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p8 - prepare from p1 p10 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p11 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p10 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 accepted 1 1 p8 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p11 decided 1 {:val, 210} p3 decided 1 {:val, 210} p5 decided 1 {:val, 210} p10 decided 1 {:val, 210} p1 decided 1 {:val, 210} p8 decided 1 {:val, 210} p1: decided {:val, 210} p8: decided {:val, 210} p5: decided {:val, 210} p10: decided {:val, 210} p3: decided {:val, 210} p11: decided {:val, 210} p11: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p10: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p7 Starting paxos for p10 Starting paxos for p9 Starting paxos for p3 Starting paxos for p8 Starting paxos for p2 Starting paxos for p6 Starting paxos for p5 Starting paxos for p1 Starting paxos for p4 Starting paxos for p11 :p7: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil :p2: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] :p4: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] p2 SET BALLOT VALUE 3 nil :p11: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] :p8: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] :p5: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p6: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] p6 SET BALLOT VALUE 3 nil :p1: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p9: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] :p10: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] :p3: started with [:p7, :p3, :p11, :p8, :p9, :p10, :p5, :p2, :p1, :p6, :p4] p3 - Propose 1 with action nil p10 - Propose 1 with action nil p7 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p7 - prepare from p10 p5 - prepare from p10 p2 - prepare from p10 p6 - prepare from p10 p10 - prepare from p10 p1 - prepare from p10 p4 - prepare from p10 p3 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p3 - p10 is leader p10 SET BALLOT VALUE {:val, 203} p10 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p10 Try to run prepared p2 - accept 1 1 {:val, 203} p10 11 7 true p4 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p10 - prepared 1 1 nil nil p6 - accept 1 1 {:val, 203} p1 - accept 1 1 {:val, 203} p10 Try to run prepared p10 11 8 true p10 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p6 - p10 is leader p1 decided 1 {:val, 203} p2 decided 1 {:val, 203} p5 decided 1 {:val, 203} p10 accepted 1 1 p3 decided 1 {:val, 203} p7 decided 1 {:val, 203} p6 decided 1 {:val, 203} p4 decided 1 {:val, 203} p10 decided 1 {:val, 203} p2 - p10 is leader p4 - p10 is leader p5 - p10 is leader p10: decided {:val, 203} p2: decided {:val, 203} p5: decided {:val, 203} p4: decided {:val, 203} p6: decided {:val, 203} p1: decided {:val, 203} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p7 Starting paxos for p6 Starting paxos for p2 Starting paxos for p10 Starting paxos for p1 Starting paxos for p4 Starting paxos for p9 Starting paxos for p8 Starting paxos for p5 Starting paxos for p3 Starting paxos for p11 :p5: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] :p1: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] :p7: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] :p11: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] :p2: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] p7 - Propose 1 with action nil :p3: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] p7 SET BALLOT VALUE 3 nil :p6: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] :p8: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] p2 - Propose 1 with action nil :p10: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] p11 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p9: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p4: started with [:p7, :p2, :p6, :p3, :p1, :p11, :p9, :p10, :p5, :p8, :p4] p7 - p1 is leader p10 - p1 is leader p2 - p1 is leader p8 - p10 is leader p4 - p10 is leader p5 - p10 is leader p9 - p10 is leader p11 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p11 - prepare from p10 p9 - prepare from p10 p5 - prepare from p10 p4 - prepare from p10 p8 - prepare from p10 p10 SET BALLOT VALUE 2 nil p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p11 - accept 1 1 {:val, 208} p10 SET BALLOT VALUE {:val, 208} p10 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 accepted 1 1 p4 - accept 1 1 {:val, 208} p10 accepted 1 1 p8 - accept 1 1 {:val, 208} p10 accepted 1 1 p5 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 208} p4 decided 1 {:val, 208} p11 decided 1 {:val, 208} p5 decided 1 {:val, 208} p8 decided 1 {:val, 208} p10 decided 1 {:val, 208} p4: decided {:val, 208} p11: decided {:val, 208} p5: decided {:val, 208} p10: decided {:val, 208} p9: decided {:val, 208} p8: decided {:val, 208} p9: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p10 Starting paxos for p1 Starting paxos for p6 Starting paxos for p9 Starting paxos for p8 Starting paxos for p2 Starting paxos for p7 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 Starting paxos for p11 :p6: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] :p3: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] :p4: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] :p8: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p9: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] :p1: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] p1 SET BALLOT VALUE 3 nil :p7: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p2: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] p9 SET BALLOT VALUE 3 nil :p5: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] :p10: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] p11 SET BALLOT VALUE 3 nil :p11: started with [:p8, :p1, :p7, :p6, :p5, :p10, :p2, :p11, :p4, :p9, :p3] p10 - Propose 1 with action nil p10 - p1 is leader p9 - p1 is leader p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p11 - p1 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p4 - prepare from p10 p11 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 203} p10 - accept 1 1 {:val, 203} p10 accepted 1 1 p3 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p10 accepted 1 1 p9 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 accepted 1 1 p11 - accept 1 1 {:val, 203} p10 accepted 1 1 p2 - accept 1 1 {:val, 203} p10 accepted 1 1 p10 decided 1 {:val, 203} p2 decided 1 {:val, 203} p3 decided 1 {:val, 203} p4 decided 1 {:val, 203} p9 decided 1 {:val, 203} p11 decided 1 {:val, 203} p9 - p10 is leader p2 - p10 is leader p3 - p10 is leader p4 - p10 is leader p10: decided {:val, 203} p3: decided {:val, 203} p4: decided {:val, 203} p9: decided {:val, 203} p2: decided {:val, 203} p11: decided {:val, 203} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p2 Starting paxos for p10 Starting paxos for p9 Starting paxos for p7 Starting paxos for p4 Starting paxos for p6 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 Starting paxos for p8 Starting paxos for p11 :p5: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p11: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] :p10: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] p11 SET BALLOT VALUE 3 nil :p4: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p6: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] :p7: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] :p1: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] :p8: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] :p3: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] :p9: started with [:p9, :p10, :p2, :p7, :p1, :p5, :p11, :p3, :p4, :p8, :p6] p9 - Propose 1 with action nil p10 - p1 is leader p6 - p1 is leader p9 - p1 is leader p3 - p1 is leader p4 - p1 is leader p5 - p1 is leader p8 - p1 is leader p11 - p10 is leader p6 - p10 is leader p3 - p10 is leader p4 - p10 is leader p5 - p11 is leader p8 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p8 - prepare from p11 p5 - prepare from p11 p3 - prepare from p11 p4 - prepare from p11 p11 - prepare from p11 p6 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p5 - accept 1 1 {:val, 205} p11 SET BALLOT VALUE {:val, 205} p11 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p6 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p11 accepted 1 1 p11 accepted 1 1 p8 - accept 1 1 {:val, 205} p11 accepted 1 1 p11 decided 1 {:val, 205} p5 decided 1 {:val, 205} p3 decided 1 {:val, 205} p4 decided 1 {:val, 205} p8 decided 1 {:val, 205} p6 decided 1 {:val, 205} p5: decided {:val, 205} p11: decided {:val, 205} p4: decided {:val, 205} p6: decided {:val, 205} p8: decided {:val, 205} p3: decided {:val, 205} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p2 Starting paxos for p7 Starting paxos for p1 Starting paxos for p9 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 Starting paxos for p8 Starting paxos for p10 Starting paxos for p6 Starting paxos for p11 :p11: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p2: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p7: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p1: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p9: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p4: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p3: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p5: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p10: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p8: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] :p6: started with [:p2, :p7, :p1, :p9, :p3, :p4, :p5, :p8, :p10, :p11, :p6] p2 - Propose 1 with action nil p7 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p8 - p10 is leader p4 - p10 is leader p6 - p10 is leader p10 - p10 is leader p11 - p10 is leader p5 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p8 - prepare from p10 p5 - prepare from p10 p10 - prepare from p10 p6 - prepare from p10 p4 - prepare from p10 p11 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p5 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p10 SET BALLOT VALUE {:val, 204} p4 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p6 decided 1 {:val, 204} p8 decided 1 {:val, 204} p4 decided 1 {:val, 204} p10 decided 1 {:val, 204} p11 decided 1 {:val, 204} p5 decided 1 {:val, 204} p11: decided {:val, 204} p5: decided {:val, 204} p10: decided {:val, 204} p8: decided {:val, 204} p6: decided {:val, 204} p4: decided {:val, 204} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p10: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p2 Starting paxos for p10 Starting paxos for p7 Starting paxos for p1 Starting paxos for p11 Starting paxos for p3 Starting paxos for p8 Starting paxos for p4 Starting paxos for p6 Starting paxos for p5 Starting paxos for p9 :p2: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p1: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p10: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p3: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p8: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p7: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p11: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p6: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p4: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p5: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] :p9: started with [:p2, :p10, :p7, :p1, :p11, :p3, :p8, :p4, :p6, :p5, :p9] p2 - Propose 1 with action nil p10 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 - p10 is leader p8 - p10 is leader p4 - p10 is leader p9 - p10 is leader p5 - p10 is leader p6 - p10 is leader p3 - p3 is leader p4 - p3 is leader p8 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p4 - prepare from p3 p8 - prepare from p3 p6 - prepare from p3 p5 - prepare from p3 p9 - prepare from p3 p3 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 2 false p5 - p3 is leader p6 - p3 is leader p9 - p3 is leader p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 3 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 4 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 5 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 11 6 false p3 SET BALLOT VALUE {:val, 208} p8 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 decided 1 {:val, 208} p8 decided 1 {:val, 208} p4 decided 1 {:val, 208} p5 decided 1 {:val, 208} p9 decided 1 {:val, 208} p6 decided 1 {:val, 208} p3: decided {:val, 208} p6: decided {:val, 208} p5: decided {:val, 208} p4: decided {:val, 208} p8: decided {:val, 208} p9: decided {:val, 208} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p7 Starting paxos for p6 Starting paxos for p9 Starting paxos for p2 Starting paxos for p8 Starting paxos for p4 Starting paxos for p3 Starting paxos for p11 Starting paxos for p10 Starting paxos for p1 :p5: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p1: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p7: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p6: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p9: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p2: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p8: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p4: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p3: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p11: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] :p10: started with [:p5, :p7, :p6, :p9, :p2, :p8, :p4, :p3, :p11, :p10, :p1] p5 - Propose 1 with action nil p7 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p4 - p1 is leader p8 - p1 is leader p3 - p1 is leader p1 - p1 is leader p11 - p1 is leader p10 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p10 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p11 - accept 1 1 {:val, 208} p8 - accept 1 1 {:val, 208} p10 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p8 decided 1 {:val, 208} p4 decided 1 {:val, 208} p3 decided 1 {:val, 208} p11 decided 1 {:val, 208} p10 decided 1 {:val, 208} p4: decided {:val, 208} p10: decided {:val, 208} p3: decided {:val, 208} p11: decided {:val, 208} p1: decided {:val, 208} p8: decided {:val, 208} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p10 Starting paxos for p9 Starting paxos for p11 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 Starting paxos for p1 Starting paxos for p6 Starting paxos for p7 Starting paxos for p8 :p3: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p11: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p1: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p10: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p9: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p6: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p7: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p4: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p2: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p5: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] :p8: started with [:p3, :p10, :p9, :p11, :p4, :p2, :p5, :p1, :p6, :p7, :p8] p3 - Propose 1 with action nil p10 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 - p1 is leader p6 - p1 is leader p1 - p1 is leader p7 - p1 is leader p5 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p8 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p8 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p7 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p5 decided 1 {:val, 210} p6 decided 1 {:val, 210} p7 decided 1 {:val, 210} p1 decided 1 {:val, 210} p8 decided 1 {:val, 210} p1: decided {:val, 210} p5: decided {:val, 210} p8: decided {:val, 210} p6: decided {:val, 210} p7: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p11 Starting paxos for p1 Starting paxos for p6 Starting paxos for p5 Starting paxos for p7 Starting paxos for p8 Starting paxos for p10 Starting paxos for p9 :p3: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p2: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p4: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p11: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p1: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p6: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p5: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p7: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p8: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p10: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] :p9: started with [:p3, :p2, :p4, :p11, :p1, :p6, :p5, :p7, :p8, :p10, :p9] p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p6 - p10 is leader p8 - p10 is leader p7 - p10 is leader p5 - p10 is leader p9 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p9 - prepare from p10 p7 - prepare from p10 p5 - prepare from p10 p6 - prepare from p10 p10 - prepare from p10 p8 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 209} p6 - accept 1 1 {:val, 209} p10 - accept 1 1 {:val, 209} p9 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p7 - accept 1 1 {:val, 209} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p6 decided 1 {:val, 209} p5 decided 1 {:val, 209} p7 decided 1 {:val, 209} p10 decided 1 {:val, 209} p8 decided 1 {:val, 209} p9 decided 1 {:val, 209} p8: decided {:val, 209} p7: decided {:val, 209} p5: decided {:val, 209} p10: decided {:val, 209} p9: decided {:val, 209} p6: decided {:val, 209} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p3 Starting paxos for p1 Starting paxos for p6 Starting paxos for p4 Starting paxos for p5 Starting paxos for p9 Starting paxos for p7 Starting paxos for p10 Starting paxos for p11 Starting paxos for p8 Starting paxos for p2 :p6: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p3: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p9: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p1: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p8: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p2: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p4: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p7: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p5: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p10: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] :p11: started with [:p3, :p1, :p6, :p4, :p5, :p9, :p7, :p10, :p11, :p8, :p2] p3 - Propose 1 with action nil p1 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p8 - p1 is leader p9 - p1 is leader p10 - p1 is leader p7 - p1 is leader p11 - p1 is leader p2 - p1 is leader p8 - p10 is leader p9 - p10 is leader p11 - p10 is leader p7 - p10 is leader p10 - p10 is leader p2 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p7 - prepare from p10 p11 - prepare from p10 p8 - prepare from p10 p9 - prepare from p10 p2 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 206} p8 - accept 1 1 {:val, 206} p9 - accept 1 1 {:val, 206} p7 - accept 1 1 {:val, 206} p10 - accept 1 1 {:val, 206} p11 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 206} p10 decided 1 {:val, 206} p11 decided 1 {:val, 206} p8 decided 1 {:val, 206} p7 decided 1 {:val, 206} p2 decided 1 {:val, 206} p9: decided {:val, 206} p7: decided {:val, 206} p2: decided {:val, 206} p11: decided {:val, 206} p8: decided {:val, 206} p10: decided {:val, 206} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p11 Starting paxos for p9 Starting paxos for p8 Starting paxos for p7 Starting paxos for p6 Starting paxos for p10 Starting paxos for p5 Starting paxos for p4 :p2: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p3: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p1: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p11: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p9: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p8: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p6: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p10: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p7: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p5: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] :p4: started with [:p2, :p3, :p1, :p11, :p9, :p8, :p7, :p6, :p10, :p5, :p4] p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p6 - p10 is leader p7 - p10 is leader p8 - p10 is leader p4 - p10 is leader p5 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p6 - prepare from p10 p7 - prepare from p10 p8 - prepare from p10 p4 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 208} p8 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p10 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p5 decided 1 {:val, 208} p6 decided 1 {:val, 208} p7 decided 1 {:val, 208} p8 decided 1 {:val, 208} p10 decided 1 {:val, 208} p4 decided 1 {:val, 208} p10: decided {:val, 208} p7: decided {:val, 208} p6: decided {:val, 208} p4: decided {:val, 208} p5: decided {:val, 208} p8: decided {:val, 208} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p9 Starting paxos for p6 Starting paxos for p7 Starting paxos for p4 Starting paxos for p11 Starting paxos for p10 Starting paxos for p8 Starting paxos for p2 Starting paxos for p5 Starting paxos for p3 Starting paxos for p1 :p9: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p6: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p7: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p4: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p11: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p8: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p10: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p2: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p5: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p3: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] :p1: started with [:p9, :p6, :p7, :p4, :p11, :p10, :p8, :p2, :p5, :p3, :p1] p9 - Propose 1 with action nil p6 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p5 - p1 is leader p3 - p1 is leader p8 - p1 is leader p2 - p1 is leader p1 - p1 is leader p10 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p8 - prepare from p1 p10 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p1 - accept 1 1 {:val, 202} p10 - accept 1 1 {:val, 202} p8 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p5 decided 1 {:val, 202} p8 decided 1 {:val, 202} p10 decided 1 {:val, 202} p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p8: decided {:val, 202} p2: decided {:val, 202} p1: decided {:val, 202} p5: decided {:val, 202} p3: decided {:val, 202} p10: decided {:val, 202} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p7 Starting paxos for p1 Starting paxos for p5 Starting paxos for p11 Starting paxos for p8 Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 Starting paxos for p6 Starting paxos for p9 Starting paxos for p10 :p7: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p1: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p5: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p11: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p8: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p3: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p4: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p6: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p2: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p9: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] :p10: started with [:p7, :p1, :p5, :p11, :p8, :p2, :p3, :p4, :p6, :p9, :p10] p7 - Propose 1 with action nil p1 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 - p1 is leader p3 - p1 is leader p6 - p1 is leader p9 - p1 is leader p4 - p1 is leader p10 - p1 is leader p10 - p10 is leader p2 - p10 is leader p3 - p10 is leader p4 - p10 is leader p6 - p10 is leader p9 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p10 - prepare from p10 p2 - prepare from p10 p9 - prepare from p10 p3 - prepare from p10 p4 - prepare from p10 p6 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 210} p3 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p9 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p2 decided 1 {:val, 210} p4 decided 1 {:val, 210} p10 decided 1 {:val, 210} p3 decided 1 {:val, 210} p6 decided 1 {:val, 210} p9 decided 1 {:val, 210} p2: decided {:val, 210} p9: decided {:val, 210} p6: decided {:val, 210} p4: decided {:val, 210} p3: decided {:val, 210} p10: decided {:val, 210} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p11 Starting paxos for p9 Starting paxos for p8 Starting paxos for p6 Starting paxos for p10 Starting paxos for p7 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 Starting paxos for p4 Starting paxos for p1 :p8: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p11: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p9: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p6: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p10: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p7: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p3: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p2: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p5: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p4: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] :p1: started with [:p11, :p9, :p8, :p6, :p10, :p7, :p3, :p2, :p5, :p4, :p1] p11 - Propose 1 with action nil p9 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p3 - p1 is leader p5 - p1 is leader p7 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p7 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p7 - accept 1 1 {:val, 202} p4 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 202} p3 decided 1 {:val, 202} p1 decided 1 {:val, 202} p5 decided 1 {:val, 202} p4 decided 1 {:val, 202} p2 decided 1 {:val, 202} p3: decided {:val, 202} p5: decided {:val, 202} p2: decided {:val, 202} p1: decided {:val, 202} p4: decided {:val, 202} p7: decided {:val, 202} p7: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p10 Starting paxos for p8 Starting paxos for p5 Starting paxos for p9 Starting paxos for p4 Starting paxos for p3 Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p7 Starting paxos for p11 :p2: started spare = [:p11, :p3, :p8, :p1, :p2, :p10] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] :p9: started :p5: started :p7: started :p1: started spare = [:p11, :p3, :p8, :p1, :p2, :p10] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] spare = [:p11, :p3, :p8, :p1, :p2, :p10] spare = [:p11, :p3, :p8, :p1, :p2, :p10] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] spare = [:p11, :p3, :p8, :p1, :p2, :p10] :p10: started kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] :p4: started :p11: started :p6: started :p8: started :p3: started spare = [:p11, :p3, :p8, :p1, :p2, :p10] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] spare = [:p11, :p3, :p8, :p1, :p2, :p10] spare = [:p11, :p3, :p8, :p1, :p2, :p10] spare = [:p11, :p3, :p8, :p1, :p2, :p10] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil spare = [:p11, :p3, :p8, :p1, :p2, :p10] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil spare = [:p11, :p3, :p8, :p1, :p2, :p10] kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p4, :p6], [:p9, :p5, :p7] p10 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 - p1 is leader p10 - p1 is leader p6 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p8 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p11 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p10 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p2 - accept 1 1 {:val, 208} p1 accepted 1 1 p8 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p10 decided 1 {:val, 208} p8 decided 1 {:val, 208} p10 - Propose 1 with action nil p11 decided 1 {:val, 208} p10 - Has already decided for 1 sending {:val, 208} p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 208} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 208} p11 - p1 is leader p10: decided {:val, 208} p11: decided {:val, 208} p1: decided {:val, 208} p2: decided {:val, 208} p8: decided {:val, 208} p3: decided {:val, 208} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p5 Starting paxos for p10 Starting paxos for p3 Starting paxos for p1 Starting paxos for p6 Starting paxos for p7 Starting paxos for p4 Starting paxos for p9 Starting paxos for p8 Starting paxos for p11 :p11: started :p9: started :p3: started :p1: started spare = [:p11, :p5, :p6, :p9, :p1, :p8] :p10: started kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] spare = [:p11, :p5, :p6, :p9, :p1, :p8] :p2: started spare = [:p11, :p5, :p6, :p9, :p1, :p8] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] :p7: started p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil spare = [:p11, :p5, :p6, :p9, :p1, :p8] :p6: started spare = [:p11, :p5, :p6, :p9, :p1, :p8] spare = [:p11, :p5, :p6, :p9, :p1, :p8] :p8: started spare = [:p11, :p5, :p6, :p9, :p1, :p8] :p4: started :p5: started kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] p6 SET BALLOT VALUE 3 nil spare = [:p11, :p5, :p6, :p9, :p1, :p8] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil spare = [:p11, :p5, :p6, :p9, :p1, :p8] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] p10 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil spare = [:p11, :p5, :p6, :p9, :p1, :p8] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] p8 - Propose 1 with action nil spare = [:p11, :p5, :p6, :p9, :p1, :p8] kill: leaders, followers = [:p2, :p10], [:p4, :p3, :p7] p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p8 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p6 - p1 is leader p1 11 2 false p1 - prepared 1 1 nil nil p8 - p1 is leader p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p9 - p1 is leader p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 209} p11 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p6 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p9 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 209} p5 decided 1 {:val, 209} p1 decided 1 {:val, 209} p9 decided 1 {:val, 209} p8 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 209} p8: decided {:val, 209} p11: decided {:val, 209} p9: decided {:val, 209} p1: decided {:val, 209} p6: decided {:val, 209} p5: decided {:val, 209} p11 - p1 is leader p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p8 decided 1 {:val, 209} p5 decided 1 {:val, 209} p6 decided 1 {:val, 209} p1 decided 1 {:val, 209} p9 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p6 decided 1 {:val, 209} p5 decided 1 {:val, 209} p6 decided 1 {:val, 209} p9 decided 1 {:val, 209} p6 decided 1 {:val, 209} p6 decided 1 {:val, 209} p1 decided 1 {:val, 209} p6 decided 1 {:val, 209} p11 decided 1 {:val, 209} p9 decided 1 {:val, 209} p9 decided 1 {:val, 209} p5 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p5 decided 1 {:val, 209} p9 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p1 decided 1 {:val, 209} p9 decided 1 {:val, 209} p5 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p1 decided 1 {:val, 209} p5 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p1 decided 1 {:val, 209} p1 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2 decided 1 {:val, 209} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p11: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p5 Starting paxos for p10 Starting paxos for p8 Starting paxos for p1 Starting paxos for p6 Starting paxos for p3 Starting paxos for p4 Starting paxos for p7 Starting paxos for p9 Starting paxos for p2 Starting paxos for p11 :p11: started :p6: started spare = [:p6, :p7, :p9, :p1, :p8, :p11] kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] :p10: started :p9: started :p4: started p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil spare = [:p6, :p7, :p9, :p1, :p8, :p11] kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] :p5: started :p7: started :p2: started spare = [:p6, :p7, :p9, :p1, :p8, :p11] :p8: started p6 SET BALLOT VALUE 3 nil :p3: started kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] :p1: started p6 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil spare = [:p6, :p7, :p9, :p1, :p8, :p11] p5 SET BALLOT VALUE 3 nil spare = [:p6, :p7, :p9, :p1, :p8, :p11] p4 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] spare = [:p6, :p7, :p9, :p1, :p8, :p11] p2 SET BALLOT VALUE 3 nil spare = [:p6, :p7, :p9, :p1, :p8, :p11] spare = [:p6, :p7, :p9, :p1, :p8, :p11] kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] p10 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] p3 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] p10 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil spare = [:p6, :p7, :p9, :p1, :p8, :p11] kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] spare = [:p6, :p7, :p9, :p1, :p8, :p11] kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] spare = [:p6, :p7, :p9, :p1, :p8, :p11] kill: leaders, followers = [:p10, :p5], [:p4, :p2, :p3] p9 SET BALLOT VALUE 3 nil p8 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p6 - prepare from p1 p7 - prepare from p1 p11 - prepare from p1 p8 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p9 - p1 is leader p7 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p11 - accept 1 1 {:val, 201} p1 accepted 1 1 p8 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p9 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 201} p1 decided 1 {:val, 201} p11 decided 1 {:val, 201} p9 decided 1 {:val, 201} p6 decided 1 {:val, 201} p8 decided 1 {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 201} p11 - p1 is leader p11: decided {:val, 201} p6: decided {:val, 201} p9: decided {:val, 201} p1: decided {:val, 201} p8: decided {:val, 201} p7: decided {:val, 201} p7: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p8 Starting paxos for p7 Starting paxos for p4 Starting paxos for p10 Starting paxos for p9 Starting paxos for p1 Starting paxos for p2 Starting paxos for p5 Starting paxos for p6 Starting paxos for p3 Starting paxos for p11 :p10: started :p7: started :p5: started spare = [:p3, :p8, :p9, :p2, :p1, :p7] :p9: started kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] spare = [:p3, :p8, :p9, :p2, :p1, :p7] kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] :p1: started :p4: started :p11: started spare = [:p3, :p8, :p9, :p2, :p1, :p7] :p8: started kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] :p6: started :p3: started p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil spare = [:p3, :p8, :p9, :p2, :p1, :p7] spare = [:p3, :p8, :p9, :p2, :p1, :p7] spare = [:p3, :p8, :p9, :p2, :p1, :p7] kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] spare = [:p3, :p8, :p9, :p2, :p1, :p7] kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] :p2: started spare = [:p3, :p8, :p9, :p2, :p1, :p7] kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] spare = [:p3, :p8, :p9, :p2, :p1, :p7] kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] p3 SET BALLOT VALUE 3 nil spare = [:p3, :p8, :p9, :p2, :p1, :p7] kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] p11 SET BALLOT VALUE 3 nil spare = [:p3, :p8, :p9, :p2, :p1, :p7] kill: leaders, followers = [:p6, :p4], [:p5, :p10, :p11] p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 - p1 is leader p7 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - p1 is leader p3 - prepare from p1 p7 - prepare from p1 p2 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p9 - prepare from p1 p3 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p7 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p9 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p8 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p9 decided 1 {:val, 207} p8 decided 1 {:val, 207} p7 decided 1 {:val, 207} p2 decided 1 {:val, 207} p3 decided 1 {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p7: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p8: decided {:val, 207} p9: decided {:val, 207} p2: decided {:val, 207} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p10 Starting paxos for p4 Starting paxos for p7 Starting paxos for p1 Starting paxos for p3 Starting paxos for p9 Starting paxos for p6 Starting paxos for p8 Starting paxos for p2 Starting paxos for p5 Starting paxos for p11 :p5: started :p4: started :p1: started spare = [:p3, :p1, :p9, :p8, :p11, :p4] spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] p4 - Propose 1 with action nil :p8: started p4 SET BALLOT VALUE 3 nil :p11: started :p7: started :p10: started :p3: started :p6: started p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] :p9: started :p2: started p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] p10 - Propose 1 with action nil spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] spare = [:p3, :p1, :p9, :p8, :p11, :p4] spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] spare = [:p3, :p1, :p9, :p8, :p11, :p4] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] kill: leaders, followers = [:p2, :p10], [:p5, :p6, :p7] p2 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p10 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p11 - prepare from p1 p9 - prepare from p1 p10 - prepare from p1 p1 - prepare from p1 p9 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - p1 is leader p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p3 - accept 1 1 {:val, 207} p11 - accept 1 1 {:val, 207} p8 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p9 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p3 - p1 is leader p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 207} p8 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 207} p8 decided 1 {:val, 207} p9 decided 1 {:val, 207} p1 accepted 1 1 p3 decided 1 {:val, 207} p10 decided 1 {:val, 207} p11 decided 1 {:val, 207} p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p4 - Propose 1 with action nil p9: decided {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p8: decided {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p11: decided {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4: decided {:val, 207} p3: decided {:val, 207} p11 - p1 is leader p1: decided {:val, 207} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p10 Starting paxos for p5 Starting paxos for p9 Starting paxos for p7 Starting paxos for p6 Starting paxos for p1 Starting paxos for p8 Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 Starting paxos for p11 :p11: started :p8: started :p1: started spare = [:p7, :p3, :p10, :p8, :p9, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] p11 - Propose 1 with action nil :p4: started p11 SET BALLOT VALUE 3 nil :p5: started spare = [:p7, :p3, :p10, :p8, :p9, :p6] spare = [:p7, :p3, :p10, :p8, :p9, :p6] p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] :p7: started p4 SET BALLOT VALUE 3 nil :p2: started p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil spare = [:p7, :p3, :p10, :p8, :p9, :p6] :p9: started kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] spare = [:p7, :p3, :p10, :p8, :p9, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p3: started :p6: started :p10: started p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil spare = [:p7, :p3, :p10, :p8, :p9, :p6] spare = [:p7, :p3, :p10, :p8, :p9, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] spare = [:p7, :p3, :p10, :p8, :p9, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] spare = [:p7, :p3, :p10, :p8, :p9, :p6] spare = [:p7, :p3, :p10, :p8, :p9, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] spare = [:p7, :p3, :p10, :p8, :p9, :p6] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] kill: leaders, followers = [:p5, :p11], [:p4, :p1, :p2] p5 - Propose 1 with action nil p7 - Propose 1 with action nil p6 - Propose 1 with action nil p9 - p1 is leader p10 - p1 is leader p6 - p1 is leader p7 - p1 is leader p5 - p1 is leader p3 - p1 is leader p8 - p1 is leader p11 - p1 is leader p9 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p9 - prepare from p10 p3 - prepare from p10 p6 - prepare from p10 p7 - prepare from p10 p8 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p6 - p10 is leader p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p7 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p7 - p10 is leader p10 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p10 accepted 1 1 p9 - accept 1 1 {:val, 204} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 204} p8 decided 1 {:val, 204} p9 decided 1 {:val, 204} p7 decided 1 {:val, 204} p6 decided 1 {:val, 204} p3 decided 1 {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p3 - p10 is leader p6 - Propose 1 with action nil p8 - p10 is leader p6 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 204} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 204} p7: decided {:val, 204} p6: decided {:val, 204} p8: decided {:val, 204} p9: decided {:val, 204} p3: decided {:val, 204} p10: decided {:val, 204} p10: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p7 Starting paxos for p8 Starting paxos for p4 Starting paxos for p9 Starting paxos for p2 Starting paxos for p5 Starting paxos for p10 Starting paxos for p1 Starting paxos for p6 Starting paxos for p3 Starting paxos for p11 :p5: started spare = [:p11, :p9, :p6, :p5, :p8, :p10] kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] :p4: started :p11: started :p10: started :p1: started spare = [:p11, :p9, :p6, :p5, :p8, :p10] spare = [:p11, :p9, :p6, :p5, :p8, :p10] :p9: started :p7: started kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] spare = [:p11, :p9, :p6, :p5, :p8, :p10] kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] :p2: started kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] :p8: started :p6: started spare = [:p11, :p9, :p6, :p5, :p8, :p10] :p3: started p11 - Propose 1 with action nil spare = [:p11, :p9, :p6, :p5, :p8, :p10] spare = [:p11, :p9, :p6, :p5, :p8, :p10] kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] spare = [:p11, :p9, :p6, :p5, :p8, :p10] kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] spare = [:p11, :p9, :p6, :p5, :p8, :p10] kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] spare = [:p11, :p9, :p6, :p5, :p8, :p10] kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] p3 - Propose 1 with action nil spare = [:p11, :p9, :p6, :p5, :p8, :p10] kill: leaders, followers = [:p3, :p2], [:p7, :p1, :p4] p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 - p10 is leader p9 - p10 is leader p5 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p9 - prepare from p10 p11 - prepare from p10 p10 - prepare from p10 p6 - prepare from p10 p5 - prepare from p10 p8 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p6 - p10 is leader p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 210} p10 - accept 1 1 {:val, 210} p10 accepted 1 1 p11 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p10 accepted 1 1 p5 - accept 1 1 {:val, 210} p10 accepted 1 1 p9 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p9 decided 1 {:val, 210} p8 decided 1 {:val, 210} p11 decided 1 {:val, 210} p6 decided 1 {:val, 210} p5 decided 1 {:val, 210} p10 decided 1 {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p9: decided {:val, 210} p8: decided {:val, 210} p6: decided {:val, 210} p10: decided {:val, 210} p11: decided {:val, 210} p11 - p10 is leader p5: decided {:val, 210} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p6 Starting paxos for p1 Starting paxos for p9 Starting paxos for p3 Starting paxos for p4 Starting paxos for p10 Starting paxos for p8 Starting paxos for p7 Starting paxos for p5 Starting paxos for p2 Starting paxos for p11 :p1: started spare = [:p5, :p8, :p7, :p3, :p10, :p9] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] :p4: started :p7: started :p8: started :p9: started :p6: started spare = [:p5, :p8, :p7, :p3, :p10, :p9] spare = [:p5, :p8, :p7, :p3, :p10, :p9] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] :p10: started spare = [:p5, :p8, :p7, :p3, :p10, :p9] :p2: started kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] spare = [:p5, :p8, :p7, :p3, :p10, :p9] :p11: started spare = [:p5, :p8, :p7, :p3, :p10, :p9] :p5: started :p3: started kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] spare = [:p5, :p8, :p7, :p3, :p10, :p9] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] spare = [:p5, :p8, :p7, :p3, :p10, :p9] spare = [:p5, :p8, :p7, :p3, :p10, :p9] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil spare = [:p5, :p8, :p7, :p3, :p10, :p9] p9 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil spare = [:p5, :p8, :p7, :p3, :p10, :p9] kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p11], [:p1, :p4, :p6] p10 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p9 - p10 is leader p3 - p10 is leader p8 - p10 is leader p5 - p10 is leader p7 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p11 - prepare from p10 p5 - prepare from p10 p10 - prepare from p10 p7 - prepare from p10 p3 - prepare from p10 p9 - prepare from p10 p8 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 7 true p10 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p10 accepted 1 1 p3 - accept 1 1 {:val, 201} p10 accepted 1 1 p7 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p8 - accept 1 1 {:val, 201} p10 accepted 1 1 p9 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 decided 1 {:val, 201} p8 decided 1 {:val, 201} p5 decided 1 {:val, 201} p3 decided 1 {:val, 201} p7 decided 1 {:val, 201} p9 decided 1 {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p5: decided {:val, 201} p9: decided {:val, 201} p8: decided {:val, 201} p7: decided {:val, 201} p10: decided {:val, 201} p3: decided {:val, 201} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p10 Starting paxos for p6 Starting paxos for p1 Starting paxos for p7 Starting paxos for p8 Starting paxos for p3 Starting paxos for p9 Starting paxos for p2 Starting paxos for p4 Starting paxos for p5 Starting paxos for p11 :p8: started spare = [:p5, :p6, :p7, :p3, :p11, :p9] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil :p4: started :p1: started :p10: started :p5: started :p7: started :p3: started p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil spare = [:p5, :p6, :p7, :p3, :p11, :p9] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] spare = [:p5, :p6, :p7, :p3, :p11, :p9] spare = [:p5, :p6, :p7, :p3, :p11, :p9] :p11: started p11 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] p9 SET BALLOT VALUE 3 nil :p9: started spare = [:p5, :p6, :p7, :p3, :p11, :p9] p7 SET BALLOT VALUE 3 nil spare = [:p5, :p6, :p7, :p3, :p11, :p9] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] p4 - Propose 1 with action nil kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] p2 SET BALLOT VALUE 3 nil :p2: started :p6: started spare = [:p5, :p6, :p7, :p3, :p11, :p9] p5 - Propose 1 with action nil spare = [:p5, :p6, :p7, :p3, :p11, :p9] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] p6 SET BALLOT VALUE 3 nil spare = [:p5, :p6, :p7, :p3, :p11, :p9] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] spare = [:p5, :p6, :p7, :p3, :p11, :p9] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] spare = [:p5, :p6, :p7, :p3, :p11, :p9] kill: leaders, followers = [:p4, :p8], [:p1, :p10, :p2] p9 - Propose 1 with action nil p7 - p1 is leader p6 - p1 is leader p3 - p1 is leader p8 - p1 is leader p9 - p1 is leader p4 - p1 is leader p5 - p1 is leader p11 - p1 is leader p7 - p11 is leader p6 - p11 is leader p3 - p11 is leader p9 - p11 is leader p5 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p9 - prepare from p11 p7 - prepare from p11 p11 - prepare from p11 p3 - prepare from p11 p5 - prepare from p11 p6 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p7 - accept 1 1 {:val, 203} p9 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p11 SET BALLOT VALUE {:val, 203} p11 - accept 1 1 {:val, 203} p11 accepted 1 1 p6 - accept 1 1 {:val, 203} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 decided 1 {:val, 203} p6 decided 1 {:val, 203} p7 decided 1 {:val, 203} p9 decided 1 {:val, 203} p3 decided 1 {:val, 203} p5 decided 1 {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 203} p3: decided {:val, 203} p7: decided {:val, 203} p11: decided {:val, 203} p6: decided {:val, 203} p9: decided {:val, 203} p5: decided {:val, 203} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p10 Starting paxos for p9 Starting paxos for p7 Starting paxos for p8 Starting paxos for p5 Starting paxos for p6 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p11 :p7: started :p6: started :p9: started :p3: started :p8: started spare = [:p8, :p6, :p7, :p2, :p3, :p4] :p1: started :p10: started kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] :p11: started spare = [:p8, :p6, :p7, :p2, :p3, :p4] :p2: started kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] :p4: started spare = [:p8, :p6, :p7, :p2, :p3, :p4] kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] spare = [:p8, :p6, :p7, :p2, :p3, :p4] kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] spare = [:p8, :p6, :p7, :p2, :p3, :p4] kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] spare = [:p8, :p6, :p7, :p2, :p3, :p4] spare = [:p8, :p6, :p7, :p2, :p3, :p4] spare = [:p8, :p6, :p7, :p2, :p3, :p4] :p5: started kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] spare = [:p8, :p6, :p7, :p2, :p3, :p4] kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] p8 - Propose 1 with action nil spare = [:p8, :p6, :p7, :p2, :p3, :p4] kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil spare = [:p8, :p6, :p7, :p2, :p3, :p4] p5 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p1, :p5], [:p10, :p11, :p9] p5 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p7 - p1 is leader p8 - p1 is leader p5 - p1 is leader p4 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - p1 is leader p8 - prepare from p1 p4 - prepare from p1 p6 - prepare from p1 p7 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p4 - accept 1 1 {:val, 210} p7 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p8 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 210} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p6 decided 1 {:val, 210} p8 decided 1 {:val, 210} p3 decided 1 {:val, 210} p5 decided 1 {:val, 210} p4 decided 1 {:val, 210} p1 accepted 1 1 p7 decided 1 {:val, 210} p1 decided 1 {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 210} p4: decided {:val, 210} p8: decided {:val, 210} p6: decided {:val, 210} p7: decided {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p7 Starting paxos for p2 Starting paxos for p9 Starting paxos for p5 Starting paxos for p4 Starting paxos for p11 Starting paxos for p6 Starting paxos for p1 Starting paxos for p3 Starting paxos for p10 Starting paxos for p8 :p7: started :p2: started :p9: started :p5: started :p4: started :p11: started :p6: started :p1: started :p3: started :p10: started :p8: started spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] spare = [:p11, :p6, :p1, :p3, :p10, :p8] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] kill: leaders, followers = [:p7, :p2], [:p9, :p5, :p4] p7 - Propose 1 with action nil p2 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p11 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 - p1 is leader p6 - p1 is leader p1 - p1 is leader p10 - p1 is leader p3 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p3 - prepare from p1 p10 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p11 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 decided 1 {:val, 204} p6 decided 1 {:val, 204} p3 decided 1 {:val, 204} p11 decided 1 {:val, 204} p8 decided 1 {:val, 204} p1 decided 1 {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p8 - Propose 1 with action nil p11 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 204} p11 - Has already decided for 1 sending {:val, 204} p3: decided {:val, 204} p1: decided {:val, 204} p10: decided {:val, 204} p6: decided {:val, 204} p8: decided {:val, 204} p11: decided {:val, 204} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p3 Starting paxos for p8 Starting paxos for p2 Starting paxos for p4 Starting paxos for p7 Starting paxos for p9 Starting paxos for p6 Starting paxos for p5 Starting paxos for p10 Starting paxos for p11 Starting paxos for p1 :p3: started :p7: started :p2: started :p8: started :p5: started :p9: started :p4: started :p11: started :p6: started :p10: started :p1: started spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] spare = [:p9, :p6, :p5, :p10, :p11, :p1] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] kill: leaders, followers = [:p3, :p8], [:p2, :p4, :p7] p3 - Propose 1 with action nil p8 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p9 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 - p1 is leader p6 - p1 is leader p1 - p1 is leader p10 - p1 is leader p11 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p6 - prepare from p1 p10 - prepare from p1 p5 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p9 - accept 1 1 {:val, 205} p11 - accept 1 1 {:val, 205} p10 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 decided 1 {:val, 205} p6 decided 1 {:val, 205} p9 decided 1 {:val, 205} p11 decided 1 {:val, 205} p5 decided 1 {:val, 205} p1 decided 1 {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 205} p11: decided {:val, 205} p10: decided {:val, 205} p6: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p9: decided {:val, 205} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p11: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p10 Starting paxos for p9 Starting paxos for p4 Starting paxos for p6 Starting paxos for p5 Starting paxos for p8 Starting paxos for p7 Starting paxos for p3 Starting paxos for p11 Starting paxos for p2 :p1: started :p7: started :p10: started :p5: started :p9: started :p6: started :p3: started :p8: started :p2: started :p11: started :p4: started spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] spare = [:p3, :p2, :p11, :p10, :p4, :p5] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] kill: leaders, followers = [:p1, :p9], [:p6, :p8, :p7] p1 - Propose 1 with action nil p9 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p10 - p1 is leader p4 - p1 is leader p5 - p1 is leader p11 - p1 is leader p2 - p1 is leader p3 - p1 is leader p4 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p11 - prepare from p10 p10 - prepare from p10 p3 - prepare from p10 p4 - prepare from p10 p2 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p2 - p10 is leader p10 Try to run prepared p11 - p10 is leader p10 11 3 false p3 - p10 is leader p5 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p11 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p10 accepted 1 1 p2 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 - accept 1 1 {:val, 201} p10 accepted 1 1 p3 decided 1 {:val, 201} p11 decided 1 {:val, 201} p2 decided 1 {:val, 201} p4 decided 1 {:val, 201} p10 decided 1 {:val, 201} p5 decided 1 {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 201} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 201} p5: decided {:val, 201} p3: decided {:val, 201} p10: decided {:val, 201} p2: decided {:val, 201} p4: decided {:val, 201} p11: decided {:val, 201} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p7 Starting paxos for p5 Starting paxos for p8 Starting paxos for p4 Starting paxos for p9 Starting paxos for p10 Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 Starting paxos for p11 :p7: started :p2: started :p5: started :p8: started :p4: started :p10: started :p9: started :p1: started :p6: started :p3: started :p11: started spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] spare = [:p2, :p3, :p8, :p10, :p1, :p11] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] kill: leaders, followers = [:p7, :p5], [:p4, :p9, :p6] p7 - Propose 1 with action nil p5 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p10 - p1 is leader p8 - p1 is leader p2 - p1 is leader p3 - p1 is leader p11 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p8 - prepare from p1 p1 - prepare from p1 p10 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 210} p10 decided 1 {:val, 210} p2 decided 1 {:val, 210} p1 decided 1 {:val, 210} p11 decided 1 {:val, 210} p8 decided 1 {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p3: decided {:val, 210} p10: decided {:val, 210} p1: decided {:val, 210} p8: decided {:val, 210} p2: decided {:val, 210} p11: decided {:val, 210} p10: {:message_queue_len, 0} p3: {:message_queue_len, 0} p11: {:message_queue_len, 0} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p7 Starting paxos for p9 Starting paxos for p6 Starting paxos for p5 Starting paxos for p3 Starting paxos for p10 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p8 Starting paxos for p11 :p7: started :p9: started :p6: started :p5: started :p3: started :p10: started :p2: started :p1: started :p4: started :p8: started :p11: started spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] spare = [:p10, :p2, :p1, :p4, :p8, :p11] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] kill: leaders, followers = [:p7, :p9], [:p6, :p5, :p3] p7 - Propose 1 with action nil p9 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p10 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p10 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p10 - prepare from p1 p11 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p11 - p1 is leader p4 - p1 is leader p1 Try to run prepared p8 - p1 is leader p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p2 - accept 1 1 {:val, 204} p8 - accept 1 1 {:val, 204} p10 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p11 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 204} p8 decided 1 {:val, 204} p11 decided 1 {:val, 204} p4 decided 1 {:val, 204} p2 decided 1 {:val, 204} p10 decided 1 {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 204} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 204} p4: decided {:val, 204} p1: decided {:val, 204} p2: decided {:val, 204} p8: decided {:val, 204} p11: decided {:val, 204} p10: decided {:val, 204} p10: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p10 Starting paxos for p5 Starting paxos for p3 Starting paxos for p2 Starting paxos for p11 Starting paxos for p1 Starting paxos for p9 Starting paxos for p8 Starting paxos for p7 Starting paxos for p6 Starting paxos for p4 :p10: started :p5: started :p2: started :p11: started :p9: started :p7: started :p3: started :p4: started :p1: started :p8: started :p6: started spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] spare = [:p1, :p9, :p8, :p7, :p6, :p4] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] kill: leaders, followers = [:p10, :p5], [:p3, :p2, :p11] p10 - Propose 1 with action nil p5 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p1 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 - p1 is leader p1 - p1 is leader p7 - p1 is leader p8 - p1 is leader p4 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p1 - prepare from p1 p9 - prepare from p1 p6 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p9 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p8 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p7 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 205} p7 decided 1 {:val, 205} p9 decided 1 {:val, 205} p1 decided 1 {:val, 205} p8 decided 1 {:val, 205} p6 decided 1 {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 205} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 205} p9: decided {:val, 205} p8: decided {:val, 205} p6: decided {:val, 205} p7: decided {:val, 205} p4: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p7 Starting paxos for p9 Starting paxos for p11 Starting paxos for p2 Starting paxos for p5 Starting paxos for p10 Starting paxos for p6 Starting paxos for p4 Starting paxos for p1 Starting paxos for p8 :p7: started :p11: started :p3: started :p2: started :p9: started :p10: started :p5: started :p4: started :p6: started :p1: started :p8: started spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] spare = [:p5, :p10, :p6, :p4, :p1, :p8] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] kill: leaders, followers = [:p7, :p3], [:p9, :p11, :p2] p7 - Propose 1 with action nil p3 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p5 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 - p1 is leader p10 - p1 is leader p1 - p1 is leader p8 - p1 is leader p4 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p5 - prepare from p1 p10 - prepare from p1 p6 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 205} p5 - accept 1 1 {:val, 205} p10 - accept 1 1 {:val, 205} p6 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p8 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p6 decided 1 {:val, 205} p8 decided 1 {:val, 205} p4 decided 1 {:val, 205} p1 decided 1 {:val, 205} p10 decided 1 {:val, 205} p5 decided 1 {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 205} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 205} p10: decided {:val, 205} p1: decided {:val, 205} p4: decided {:val, 205} p6: decided {:val, 205} p8: decided {:val, 205} p5: decided {:val, 205} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p10 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p2 Starting paxos for p9 Starting paxos for p4 Starting paxos for p1 Starting paxos for p11 Starting paxos for p8 Starting paxos for p5 :p6: started :p10: started :p3: started :p7: started :p2: started :p9: started :p4: started :p1: started :p8: started :p11: started :p5: started spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] spare = [:p9, :p4, :p1, :p11, :p8, :p5] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] kill: leaders, followers = [:p10, :p6], [:p7, :p3, :p2] p6 - Propose 1 with action nil p10 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p9 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 - p1 is leader p9 - p1 is leader p8 - p1 is leader p5 - p1 is leader p1 - p1 is leader p11 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p1 - prepare from p1 p11 - prepare from p1 p8 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p1 accepted 1 1 p4 - accept 1 1 {:val, 207} p1 accepted 1 1 p11 - accept 1 1 {:val, 207} p1 accepted 1 1 p8 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 207} p1 decided 1 {:val, 207} p11 decided 1 {:val, 207} p8 decided 1 {:val, 207} p5 decided 1 {:val, 207} p4 decided 1 {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4: decided {:val, 207} p11: decided {:val, 207} p1: decided {:val, 207} p8: decided {:val, 207} p9: decided {:val, 207} p5: decided {:val, 207} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p3 Starting paxos for p10 Starting paxos for p8 Starting paxos for p4 Starting paxos for p2 Starting paxos for p7 Starting paxos for p6 Starting paxos for p1 Starting paxos for p11 Starting paxos for p5 Starting paxos for p9 :p4: started :p3: started :p7: started :p10: started :p2: started :p9: started :p8: started :p6: started :p1: started :p11: started :p5: started spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] spare = [:p7, :p6, :p1, :p11, :p5, :p9] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] kill: leaders, followers = [:p3, :p10], [:p8, :p4, :p2] p3 - Propose 1 with action nil p10 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p11 - p1 is leader p1 - p1 is leader p6 - p1 is leader p7 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p1 - prepare from p1 p7 - prepare from p1 p6 - prepare from p1 p11 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p9 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p6 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p9 - accept 1 1 {:val, 202} p7 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 202} p11 decided 1 {:val, 202} p7 decided 1 {:val, 202} p1 decided 1 {:val, 202} p6 decided 1 {:val, 202} p9 decided 1 {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 202} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 202} p5: decided {:val, 202} p6: decided {:val, 202} p1: decided {:val, 202} p11: decided {:val, 202} p9: decided {:val, 202} p7: decided {:val, 202} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p9 Starting paxos for p11 Starting paxos for p6 Starting paxos for p10 Starting paxos for p1 Starting paxos for p5 Starting paxos for p7 Starting paxos for p3 Starting paxos for p4 Starting paxos for p8 Starting paxos for p2 :p7: started :p9: started :p4: started :p11: started :p8: started :p6: started :p10: started :p1: started :p3: started :p5: started :p2: started spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] spare = [:p5, :p7, :p3, :p4, :p8, :p2] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] kill: leaders, followers = [:p9, :p11], [:p6, :p10, :p1] p9 - Propose 1 with action nil p11 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p5 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - p11 is leader p4 - p11 is leader p3 - p11 is leader p7 - p11 is leader p2 - p11 is leader p8 - p11 is leader p5 - p2 is leader p7 - p2 is leader p3 - p2 is leader p4 - p2 is leader p8 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p7 - prepare from p2 p8 - prepare from p2 p4 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 4 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 5 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 6 false p2 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p7 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p4 decided 1 {:val, 210} p3 decided 1 {:val, 210} p7 decided 1 {:val, 210} p5 decided 1 {:val, 210} p8 decided 1 {:val, 210} p2 decided 1 {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 210} p5: decided {:val, 210} p2: decided {:val, 210} p8: decided {:val, 210} p7: decided {:val, 210} p3: decided {:val, 210} p4: decided {:val, 210} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p1: started :p2: started :p3: started p1 - Propose 1 with action nil p3 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p3 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p2 - prepare from p1 p1 Try to run prepared p1 3 1 false p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p2 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 SET BALLOT VALUE {:val, 205} p2 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 2 1 nil nil p2 - accept 2 1 {:val, 207} p1 Try to run prepared p3 - accept 2 1 {:val, 207} p1 3 3 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 207} p1 accepted 2 1 p3 decided 1 {:val, 205} p2 decided 1 {:val, 205} p1 accepted 2 1 p1 accepted 1 1 p3 decided 2 {:val, 207} p2 decided 2 {:val, 207} p1 accepted 2 1 p1 decided 1 {:val, 205} p1 decided 2 {:val, 207} p2: decided {:val, 205} p1: decided {:val, 205} p3: decided {:val, 205} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p1 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 sending all prepare 2 1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 207} p3 - accept 1 1 {:val, 207} p1 - prepare from p1 p2 - accept 1 1 {:val, 207} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 205} p3 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 accepted 1 1 p1 - accept 2 1 {:val, 205} p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 1 1 p3 decided 2 {:val, 205} p1 accepted 2 1 p2 decided 2 {:val, 205} p1 decided 1 {:val, 207} p1 decided 2 {:val, 205} p2: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p2 - Propose 1 with action nil p1 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepare from p1 p3 - accept 1 1 {:val, 203} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 205} p2 - accept 2 1 {:val, 205} p1 - accept 1 1 {:val, 203} p3 - accept 2 1 {:val, 205} p1 accepted 1 1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 accepted 1 1 p1 - accept 2 1 {:val, 205} p2 decided 1 {:val, 203} p1 accepted 2 1 p3 decided 1 {:val, 203} p1 accepted 1 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 205} p1 decided 1 {:val, 203} p3 decided 2 {:val, 205} p1 decided 2 {:val, 205} p3: decided {:val, 203} p2: decided {:val, 203} p1: decided {:val, 203} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 :p3: started :p2: started :p1: started p3 - Propose 1 with action nil p2 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p3 - prepare from p1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 207} p3 - accept 1 1 {:val, 207} p1 - prepared 2 1 nil nil p2 - accept 1 1 {:val, 207} p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p1 - prepared 1 1 nil nil p3 - accept 2 1 {:val, 203} p2 - accept 2 1 {:val, 203} p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 203} p1 accepted 2 1 p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 2 1 p1 accepted 1 1 p1 decided 1 {:val, 207} p3 decided 2 {:val, 203} p2 decided 2 {:val, 203} p1 accepted 2 1 p1 decided 2 {:val, 203} p1: decided {:val, 203} p3: decided {:val, 203} p2: decided {:val, 203} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p1 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 sending all prepare 2 1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 207} p3 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 205} p3 - accept 2 1 {:val, 205} p1 - accept 1 1 {:val, 207} p2 - accept 2 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 - prepared 2 1 nil nil p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 Try to run prepared p1 3 3 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 1 1 p1 accepted 2 1 p1 decided 1 {:val, 207} p3 decided 2 {:val, 205} p1 accepted 2 1 p2 decided 2 {:val, 205} p1 decided 2 {:val, 205} p2: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p2: started :p3: started p1 - Propose 1 with action nil p2 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p3 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 206} p2 decided 1 {:val, 206} p3 decided 1 {:val, 206} p3: decided {:val, 206} p1: decided {:val, 206} p2: decided {:val, 206} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 206} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 206} p2 decided 1 {:val, 206} p3 decided 1 {:val, 206} p3: decided {:val, 206} p1: decided {:val, 206} p2: decided {:val, 206} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p3: started :p1: started :p2: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p1 decided 1 {:val, 210} p2: decided {:val, 210} p3: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 206} p2 decided 1 {:val, 206} p1 decided 1 {:val, 206} p1: decided {:val, 206} p3: decided {:val, 206} p2: decided {:val, 206} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - p1 is leader p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 203} p2 decided 1 {:val, 203} p1 decided 1 {:val, 203} p1: decided {:val, 203} p2: decided {:val, 203} p3: decided {:val, 203} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p2: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p1 decided 1 {:val, 210} p2: decided {:val, 210} p3: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p1: started :p3: started :p2: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 210} p3 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p1 decided 1 {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 203} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 203} p2 decided 1 {:val, 203} p1 decided 1 {:val, 203} p1: decided {:val, 203} p2: decided {:val, 203} p3: decided {:val, 203} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 203} p2 decided 1 {:val, 203} p1 decided 1 {:val, 203} p1: decided {:val, 203} p2: decided {:val, 203} p3: decided {:val, 203} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p2: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 210} p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2: decided {:val, 210} p3: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p3: started :p2: started :p1: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p3 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 208} p2 - accept 1 1 {:val, 208} p1 decided 1 {:val, 208} p2 decided 1 {:val, 208} p1 accepted 1 1 p3: decided {:val, 208} p3 - p1 is leader p2: decided {:val, 208} p1: decided {:val, 208} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started :p1: started :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 207} p2 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 207} p3 - accept 1 1 {:val, 207} p2 decided 1 {:val, 207} p3 decided 1 {:val, 207} p1 accepted 1 1 p2: decided {:val, 207} p3 - p1 is leader p3: decided {:val, 207} p1: decided {:val, 207} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started :p1: started :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p2 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 207} p1 accepted 1 1 p2 decided 1 {:val, 207} p3 decided 1 {:val, 207} p1 decided 1 {:val, 207} p2: decided {:val, 207} p3 - p1 is leader p3: decided {:val, 207} p1: decided {:val, 207} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p3 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2 - accept 1 1 {:val, 208} p2 decided 1 {:val, 208} p1 accepted 1 1 p3: decided {:val, 208} p3 - p1 is leader p2: decided {:val, 208} p1: decided {:val, 208} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p2 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 202} p1 decided 1 {:val, 202} p2 decided 1 {:val, 202} p1: decided {:val, 202} p3 - p1 is leader p2: decided {:val, 202} p3: decided {:val, 202} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started :p2: started :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p2 - accept 1 1 {:val, 202} p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 202} p1 decided 1 {:val, 202} p2 decided 1 {:val, 202} p1 accepted 1 1 p1: decided {:val, 202} p3 - p1 is leader p3: decided {:val, 202} p2: decided {:val, 202} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started p3 - Propose 1 with action nil :p2: started :p1: started p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - accept 1 1 {:val, 208} p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p3 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p1 accepted 1 1 p3: decided {:val, 208} p3 - p1 is leader p2: decided {:val, 208} p1: decided {:val, 208} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p3: started :p2: started :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p3 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 202} p2 decided 1 {:val, 202} p1 decided 1 {:val, 202} p1: decided {:val, 202} p3 - p1 is leader p3: decided {:val, 202} p2: decided {:val, 202} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 208} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2 - accept 1 1 {:val, 208} p2 decided 1 {:val, 208} p1 accepted 1 1 p3: decided {:val, 208} p3 - p1 is leader p1: decided {:val, 208} p2: decided {:val, 208} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p3: started :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p2 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p3 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 207} p1 decided 1 {:val, 207} p2 decided 1 {:val, 207} p2: decided {:val, 207} p3 - p1 is leader p3: decided {:val, 207} p1: decided {:val, 207} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207] Starting paxos for p3 Starting paxos for p5 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 :p3: started :p5: started :p4: started :p2: started :p1: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p3 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 205} p1 accepted 1 1 p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p1 decided 1 {:val, 205} p5: decided {:val, 205} p4: decided {:val, 205} p2: decided {:val, 205} p1: decided {:val, 205} p3: decided {:val, 205} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 Starting paxos for p2 :p4: started :p3: started :p5: started :p1: started :p2: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - p1 is leader p1 - p1 is leader p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p1 Try to run prepared p3 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 208} p4 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p1 decided 1 {:val, 208} p5: decided {:val, 208} p3: decided {:val, 208} p2: decided {:val, 208} p1: decided {:val, 208} p4: decided {:val, 208} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 Starting paxos for p4 :p1: started :p3: started :p2: started :p5: started :p4: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - p1 is leader p5 - p1 is leader p3 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 209} p2 decided 1 {:val, 209} p3 decided 1 {:val, 209} p4 decided 1 {:val, 209} p1 decided 1 {:val, 209} p2: decided {:val, 209} p3: decided {:val, 209} p5: decided {:val, 209} p4: decided {:val, 209} p1: decided {:val, 209} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p1 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 :p1: started :p5: started :p2: started :p4: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p4 - p1 is leader p5 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 209} p1 decided 1 {:val, 209} p5 decided 1 {:val, 209} p4 decided 1 {:val, 209} p2 decided 1 {:val, 209} p5: decided {:val, 209} p2: decided {:val, 209} p4: decided {:val, 209} p3: decided {:val, 209} p1: decided {:val, 209} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p2: started :p1: started :p4: started :p3: started :p5: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p5 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 201} p2 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 201} p3 decided 1 {:val, 201} p1 accepted 1 1 p4 decided 1 {:val, 201} p5 decided 1 {:val, 201} p1 decided 1 {:val, 201} p4: decided {:val, 201} p1: decided {:val, 201} p5: decided {:val, 201} p3: decided {:val, 201} p2: decided {:val, 201} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 :p2: started :p5: started :p1: started :p4: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p1 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 201} p2 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 201} p1 accepted 1 1 p4 decided 1 {:val, 201} p5 decided 1 {:val, 201} p3 decided 1 {:val, 201} p1 decided 1 {:val, 201} p4: decided {:val, 201} p1: decided {:val, 201} p3: decided {:val, 201} p5: decided {:val, 201} p2: decided {:val, 201} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p4 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p4: started :p5: started :p1: started :p3: started :p2: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 - p1 is leader p5 - p1 is leader p1 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - prepare from p1 p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 208} p2 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 208} p1 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p4 decided 1 {:val, 208} p5: decided {:val, 208} p1: decided {:val, 208} p3: decided {:val, 208} p2: decided {:val, 208} p4: decided {:val, 208} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p4 Starting paxos for p1 Starting paxos for p5 Starting paxos for p3 :p2: started :p4: started :p1: started :p5: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p4 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 201} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p1 Try to run prepared p3 - accept 1 1 {:val, 201} p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 201} p1 accepted 1 1 p2 decided 1 {:val, 201} p5 decided 1 {:val, 201} p3 decided 1 {:val, 201} p1 decided 1 {:val, 201} p4: decided {:val, 201} p3: decided {:val, 201} p5: decided {:val, 201} p1: decided {:val, 201} p2: decided {:val, 201} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 Starting paxos for p2 :p4: started :p1: started :p3: started :p5: started :p2: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p4 - p1 is leader p5 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 208} p5 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p2 decided 1 {:val, 208} p1 decided 1 {:val, 208} p2: decided {:val, 208} p5: decided {:val, 208} p3: decided {:val, 208} p1: decided {:val, 208} p4: decided {:val, 208} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 :p3: started :p2: started :p4: started :p1: started :p5: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - p1 is leader p3 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p3 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p4: decided {:val, 207} p2: decided {:val, 207} p1: decided {:val, 207} p3: decided {:val, 207} p5: decided {:val, 207} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p2 - Propose 1 with action nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p2 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p3 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p1 decided 1 {:val, 210} p1: decided {:val, 210} p2: decided {:val, 210} p3 - p1 is leader p3: decided {:val, 210} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p2: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p2 - p1 is leader p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p3 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p2 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 205} p1 decided 1 {:val, 205} p2 decided 1 {:val, 205} p3: decided {:val, 205} p2: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p3: started p3 - Propose 1 with action nil :p1: started p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p2: started p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p3 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p2 - p1 is leader p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p1 decided 1 {:val, 210} p1: decided {:val, 210} p3: decided {:val, 210} p3 - p1 is leader p2: decided {:val, 210} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p3 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p1: decided {:val, 210} p3: decided {:val, 210} p3 - p1 is leader p2: decided {:val, 210} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p2: started p2 - Propose 1 with action nil :p3: started p2 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p3 - accept 1 1 {:val, 205} p1 SET BALLOT VALUE {:val, 205} p2 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 205} p3 decided 1 {:val, 205} p1 decided 1 {:val, 205} p2: decided {:val, 205} p3: decided {:val, 205} p3 - p1 is leader p1: decided {:val, 205} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 206} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 206} p2 decided 1 {:val, 206} p1 decided 1 {:val, 206} p3: decided {:val, 206} p2: decided {:val, 206} p3 - p1 is leader p1: decided {:val, 206} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started :p1: started p1 - Propose 1 with action nil :p2: started p1 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - p1 is leader p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p1 decided 1 {:val, 210} p3 decided 1 {:val, 210} p1: decided {:val, 210} p2: decided {:val, 210} p3 - p1 is leader p3: decided {:val, 210} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p1: started p1 - Propose 1 with action nil :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p3: started p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p2 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 210} p1 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p1 accepted 1 1 p1: decided {:val, 210} p2: decided {:val, 210} p3 - p1 is leader p3: decided {:val, 210} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p3 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 210} p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p1: decided {:val, 210} p3: decided {:val, 210} p3 - p1 is leader p2: decided {:val, 210} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p2: started :p3: started :p1: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p1 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2 - p1 is leader p1: decided {:val, 210} p3: decided {:val, 210} p3 - p1 is leader p2: decided {:val, 210} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p1: started :p3: started :p2: started p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p2: decided {:val, 208} p1: decided {:val, 208} p3: decided {:val, 208} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p2 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 208} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 208} p3 decided 1 {:val, 208} p1 decided 1 {:val, 208} p3: decided {:val, 208} p1: decided {:val, 208} p2: decided {:val, 208} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 :p3: started :p2: started :p1: started p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 204} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 204} p1 decided 1 {:val, 204} p2 decided 1 {:val, 204} p1: decided {:val, 204} p3: decided {:val, 204} p2: decided {:val, 204} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204, val: 204] Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 :p3: started :p2: started :p1: started p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 204} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 204} p1 decided 1 {:val, 204} p2 decided 1 {:val, 204} p1: decided {:val, 204} p3: decided {:val, 204} p2: decided {:val, 204} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204, val: 204] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p2 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 208} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 208} p3 decided 1 {:val, 208} p1 decided 1 {:val, 208} p3: decided {:val, 208} p1: decided {:val, 208} p2: decided {:val, 208} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 202} p2 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 202} p1 decided 1 {:val, 202} p3 decided 1 {:val, 202} p1: decided {:val, 202} p2: decided {:val, 202} p3: decided {:val, 202} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 202, val: 202, val: 202] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p2 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 208} p3 decided 1 {:val, 208} p1 decided 1 {:val, 208} p3: decided {:val, 208} p1: decided {:val, 208} p2: decided {:val, 208} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p1 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p3 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 208} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p1 decided 1 {:val, 208} p2: decided {:val, 208} p1: decided {:val, 208} p3: decided {:val, 208} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p2: started :p3: started p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 208} p3 decided 1 {:val, 208} p1 decided 1 {:val, 208} p3: decided {:val, 208} p1: decided {:val, 208} p2: decided {:val, 208} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p1 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 208} p3 - accept 1 1 {:val, 208} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 208} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p1 decided 1 {:val, 208} p2: decided {:val, 208} p1: decided {:val, 208} p3: decided {:val, 208} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p1: started :p3: started :p2: started p1 - Propose 1 with action nil p3 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p3 - prepare from p1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p3 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p1 - prepared 1 1 nil nil p3 - accept 2 1 {:val, 201} p2 - accept 2 1 {:val, 201} p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 201} p1 accepted 2 1 p3 decided 1 {:val, 209} p2 decided 1 {:val, 209} p1 accepted 2 1 p1 accepted 1 1 p1 accepted 2 1 p3 decided 2 {:val, 201} p2 decided 2 {:val, 201} p1 decided 1 {:val, 209} p1 decided 2 {:val, 201} p2: decided {:val, 209} p1: decided {:val, 209} p3: decided {:val, 209} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 209, val: 209, val: 209] Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 :p3: started :p2: started :p1: started p3 - Propose 1 with action nil p2 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p3 - prepare from p1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p3 - accept 1 1 {:val, 201} p1 - prepared 2 1 nil nil p2 - accept 1 1 {:val, 201} p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p1 - prepared 2 1 nil nil p3 - accept 2 1 {:val, 203} p2 - accept 2 1 {:val, 203} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 203} p1 accepted 2 1 p3 decided 1 {:val, 201} p2 decided 1 {:val, 201} p1 accepted 2 1 p1 accepted 1 1 p1 decided 1 {:val, 201} p3 decided 2 {:val, 203} p2 decided 2 {:val, 203} p1 accepted 2 1 p1 decided 2 {:val, 203} p1: decided {:val, 203} p3: decided {:val, 203} p2: decided {:val, 203} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p1 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 sending all prepare 2 1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p3 - accept 1 1 {:val, 201} p1 - prepare from p1 p2 - accept 1 1 {:val, 201} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p3 - accept 2 1 {:val, 209} p1 - prepared 1 1 nil nil p2 - accept 2 1 {:val, 209} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 accepted 1 1 p1 - accept 2 1 {:val, 209} p3 decided 1 {:val, 201} p1 accepted 2 1 p2 decided 1 {:val, 201} p1 accepted 2 1 p1 accepted 1 1 p3 decided 2 {:val, 209} p1 accepted 2 1 p2 decided 2 {:val, 209} p1 decided 1 {:val, 201} p1 decided 2 {:val, 209} p2: decided {:val, 201} p3: decided {:val, 201} p1: decided {:val, 201} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 201, val: 201, val: 201] Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 :p3: started :p2: started :p1: started p3 - Propose 1 with action nil p2 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p3 - prepare from p1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p3 - accept 1 1 {:val, 201} p1 - prepared 2 1 nil nil p2 - accept 1 1 {:val, 201} p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p3 - accept 2 1 {:val, 203} p2 - accept 2 1 {:val, 203} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 203} p3 decided 1 {:val, 201} p2 decided 1 {:val, 201} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 1 1 p1 decided 1 {:val, 201} p3 decided 2 {:val, 203} p2 decided 2 {:val, 203} p1 accepted 2 1 p1 decided 2 {:val, 203} p1: decided {:val, 203} p3: decided {:val, 203} p2: decided {:val, 203} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p3 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p2 - prepare from p1 p3 - prepare from p1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepared 2 1 nil nil p3 - accept 1 1 {:val, 203} p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p1 - prepared 1 1 nil nil p2 - accept 2 1 {:val, 201} p3 - accept 2 1 {:val, 201} p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 201} p1 accepted 2 1 p2 decided 1 {:val, 203} p3 decided 1 {:val, 203} p1 accepted 2 1 p1 accepted 1 1 p2 decided 2 {:val, 201} p3 decided 2 {:val, 201} p1 decided 1 {:val, 203} p1 accepted 2 1 p1 decided 2 {:val, 201} p1: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 201, val: 201, val: 201] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p1 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 sending all prepare 2 1 p2 - prepare from p1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p3 - accept 1 1 {:val, 201} p1 - prepare from p1 p2 - accept 1 1 {:val, 201} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p3 - accept 2 1 {:val, 209} p1 - prepared 1 1 nil nil p2 - accept 2 1 {:val, 209} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 accepted 1 1 p1 - accept 2 1 {:val, 209} p3 decided 1 {:val, 201} p1 accepted 2 1 p2 decided 1 {:val, 201} p1 accepted 2 1 p1 accepted 1 1 p3 decided 2 {:val, 209} p1 accepted 2 1 p2 decided 2 {:val, 209} p1 decided 1 {:val, 201} p1 decided 2 {:val, 209} p2: decided {:val, 201} p3: decided {:val, 201} p1: decided {:val, 201} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 201, val: 201, val: 201] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p1: started :p3: started :p2: started p1 - Propose 1 with action nil p3 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p1 - accept 1 1 {:val, 209} p3 - accept 2 1 {:val, 201} p2 - accept 2 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 - prepared 2 1 nil nil p2 decided 1 {:val, 209} p3 decided 1 {:val, 209} p1 Try to run prepared p1 3 3 true p1 - accept 2 1 {:val, 201} p1 accepted 1 1 p1 accepted 2 1 p1 accepted 2 1 p1 decided 1 {:val, 209} p1 accepted 2 1 p3 decided 2 {:val, 201} p2 decided 2 {:val, 201} p1 decided 2 {:val, 201} p2: decided {:val, 209} p1: decided {:val, 209} p3: decided {:val, 209} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 209, val: 209, val: 209] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p3 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p2 - accept 2 1 {:val, 201} p3 - accept 2 1 {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 accepted 1 1 p1 - accept 2 1 {:val, 201} p2 decided 1 {:val, 203} p3 decided 1 {:val, 203} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 1 1 p3 decided 2 {:val, 201} p1 decided 1 {:val, 203} p2 decided 2 {:val, 201} p1 accepted 2 1 p1 decided 2 {:val, 201} p1: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p3 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p2 - prepare from p1 p3 - prepare from p1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepared 2 1 nil nil p3 - accept 1 1 {:val, 203} p1 Try to run prepared p1 3 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - accept 2 1 {:val, 201} p3 - accept 2 1 {:val, 201} p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 201} p3 decided 1 {:val, 203} p1 accepted 2 1 p2 decided 1 {:val, 203} p1 accepted 2 1 p1 accepted 1 1 p1 decided 1 {:val, 203} p3 decided 2 {:val, 201} p1 accepted 2 1 p2 decided 2 {:val, 201} p1 decided 2 {:val, 201} p1: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p3 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 sending all prepare 2 1 p2 - prepare from p1 p3 - prepare from p1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepared 2 1 nil nil p3 - accept 1 1 {:val, 203} p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 3 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 201} p1 - prepared 2 1 nil nil p2 - accept 2 1 {:val, 201} p3 - accept 2 1 {:val, 201} p1 Try to run prepared p1 3 3 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 - accept 2 1 {:val, 201} p1 accepted 2 1 p2 decided 1 {:val, 203} p3 decided 1 {:val, 203} p1 accepted 2 1 p1 accepted 1 1 p1 decided 1 {:val, 203} p2 decided 2 {:val, 201} p3 decided 2 {:val, 201} p1 accepted 2 1 p1 decided 2 {:val, 201} p1: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 :p5: started :p3: started p5 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil p3 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p4 SET BALLOT VALUE 3 nil :p4: started p1 - Propose 2 with action nil p4 - Propose 2 with action nil :p2: started p2 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 2 1 {:val, 206} p3 - accept 2 1 {:val, 206} p5 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p4 - accept 2 1 {:val, 206} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 206} p3 decided 2 {:val, 206} p5 decided 2 {:val, 206} p4 decided 2 {:val, 206} p1 accepted 2 1 p1 decided 2 {:val, 206} p1: decided {:val, 206} p4: decided {:val, 206} p3: decided {:val, 206} p2: decided {:val, 206} p5: decided {:val, 206} p5 - p1 is leader p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p2: started p2 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil :p3: started p3 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p5: started p5 - Propose 2 with action nil :p1: started p1 - Propose 2 with action nil :p4: started p4 - Propose 2 with action nil p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p5 - accept 2 1 {:val, 206} p2 - accept 2 1 {:val, 206} p3 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p1 - prepared 2 1 nil nil p4 - accept 2 1 {:val, 206} p1 Try to run prepared p4 - p1 is leader p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p5 decided 2 {:val, 206} p3 decided 2 {:val, 206} p4 decided 2 {:val, 206} p2 decided 2 {:val, 206} p1 accepted 2 1 p2 - p1 is leader p1 decided 2 {:val, 206} p3: decided {:val, 206} p1: decided {:val, 206} p5: decided {:val, 206} p4: decided {:val, 206} p2: decided {:val, 206} p5 - p1 is leader p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p3: started :p5: started p3 - Propose 2 with action nil :p2: started p3 SET BALLOT VALUE 3 nil p5 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p4: started :p1: started p2 - Propose 2 with action nil p4 - Propose 2 with action nil p1 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p5 - accept 2 1 {:val, 206} p2 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p3 - accept 2 1 {:val, 206} p2 - p1 is leader p3 - p1 is leader p1 - prepared 2 1 nil nil p4 - accept 2 1 {:val, 206} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 206} p5 decided 2 {:val, 206} p3 decided 2 {:val, 206} p4 decided 2 {:val, 206} p1 accepted 2 1 p1 decided 2 {:val, 206} p5: decided {:val, 206} p1: decided {:val, 206} p2: decided {:val, 206} p3: decided {:val, 206} p4: decided {:val, 206} p5 - p1 is leader p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 :p4: started :p3: started :p1: started :p2: started p4 - Propose 2 with action nil p3 - Propose 2 with action nil p4 SET BALLOT VALUE 3 nil p2 - Propose 2 with action nil p1 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p5: started p5 SET BALLOT VALUE 3 nil p5 - Propose 2 with action nil p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p4 - p1 is leader p1 SET BALLOT VALUE {:val, 206} p5 - accept 2 1 {:val, 206} p3 - accept 2 1 {:val, 206} p4 - accept 2 1 {:val, 206} p1 - prepared 2 1 nil nil p2 - accept 2 1 {:val, 206} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p2 - p1 is leader p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p4 decided 2 {:val, 206} p3 decided 2 {:val, 206} p5 decided 2 {:val, 206} p2 decided 2 {:val, 206} p1 accepted 2 1 p1 decided 2 {:val, 206} p3: decided {:val, 206} p5: decided {:val, 206} p4: decided {:val, 206} p1: decided {:val, 206} p2: decided {:val, 206} p5 - p1 is leader p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p4: started :p3: started p3 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p4 - Propose 2 with action nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p5 SET BALLOT VALUE 3 nil :p5: started p2 - Propose 2 with action nil p5 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil :p1: started p1 - Propose 2 with action nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p4 - p1 is leader p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p5 - accept 2 1 {:val, 206} p2 - accept 2 1 {:val, 206} p3 - accept 2 1 {:val, 206} p4 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p3 - p1 is leader p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p3 decided 2 {:val, 206} p4 decided 2 {:val, 206} p1 accepted 2 1 p5 decided 2 {:val, 206} p2 decided 2 {:val, 206} p1 decided 2 {:val, 206} p2: decided {:val, 206} p4: decided {:val, 206} p5: decided {:val, 206} p1: decided {:val, 206} p3: decided {:val, 206} p5 - p1 is leader p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p3: started p3 - Propose 2 with action nil :p5: started p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p4: started :p2: started p4 - Propose 2 with action nil p5 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil p2 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p1 - Propose 2 with action nil p2 - p1 is leader p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p4 - accept 2 1 {:val, 206} p5 - accept 2 1 {:val, 206} p3 - accept 2 1 {:val, 206} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p3 - p1 is leader p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p5 decided 2 {:val, 206} p3 decided 2 {:val, 206} p4 decided 2 {:val, 206} p2 decided 2 {:val, 206} p1 decided 2 {:val, 206} p1: decided {:val, 206} p2: decided {:val, 206} p3: decided {:val, 206} p5: decided {:val, 206} p4: decided {:val, 206} p5 - p1 is leader p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p2: started p2 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p5: started p1 SET BALLOT VALUE 3 nil p5 - Propose 2 with action nil :p1: started p1 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil :p3: started p3 - Propose 2 with action nil p4 SET BALLOT VALUE 3 nil :p4: started p4 - Propose 2 with action nil p4 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p5 - accept 2 1 {:val, 206} p4 - accept 2 1 {:val, 206} p2 - accept 2 1 {:val, 206} p3 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p2 - p1 is leader p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 206} p4 decided 2 {:val, 206} p3 decided 2 {:val, 206} p5 decided 2 {:val, 206} p1 accepted 2 1 p1 decided 2 {:val, 206} p3: decided {:val, 206} p2: decided {:val, 206} p1: decided {:val, 206} p4: decided {:val, 206} p5: decided {:val, 206} p5 - p1 is leader p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p5: started :p4: started p5 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil p4 - Propose 2 with action nil :p1: started :p3: started :p2: started p2 SET BALLOT VALUE 3 nil p3 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil p2 - Propose 2 with action nil p4 SET BALLOT VALUE 3 nil p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 2 1 {:val, 206} p4 - accept 2 1 {:val, 206} p3 - accept 2 1 {:val, 206} p5 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 206} p3 decided 2 {:val, 206} p5 decided 2 {:val, 206} p4 decided 2 {:val, 206} p1 accepted 2 1 p1 decided 2 {:val, 206} p5: decided {:val, 206} p3: decided {:val, 206} p4: decided {:val, 206} p2: decided {:val, 206} p1: decided {:val, 206} p5 - p1 is leader p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 :p4: started p4 - Propose 2 with action nil :p3: started p4 SET BALLOT VALUE 3 nil :p1: started p3 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil :p5: started p2 SET BALLOT VALUE 3 nil :p2: started p5 - Propose 2 with action nil p2 - Propose 2 with action nil p5 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p4 - accept 2 1 {:val, 206} p5 - accept 2 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p3 - accept 2 1 {:val, 206} p2 - accept 2 1 {:val, 206} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 206} p4 decided 2 {:val, 206} p5 decided 2 {:val, 206} p3 decided 2 {:val, 206} p1 accepted 2 1 p1 decided 2 {:val, 206} p1: decided {:val, 206} p2: decided {:val, 206} p5: decided {:val, 206} p3: decided {:val, 206} p4: decided {:val, 206} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 :p3: started :p1: started :p4: started p3 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 - Propose 2 with action nil p4 - Propose 2 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p2 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil :p5: started p5 - Propose 2 with action nil p3 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 206} p4 - accept 2 1 {:val, 206} p1 - prepared 2 1 nil nil p2 - accept 2 1 {:val, 206} p5 - accept 2 1 {:val, 206} p1 Try to run prepared p1 5 4 true p3 - accept 2 1 {:val, 206} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 206} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p4 decided 2 {:val, 206} p3 decided 2 {:val, 206} p5 decided 2 {:val, 206} p2 decided 2 {:val, 206} p1 accepted 2 1 p1 decided 2 {:val, 206} p5: decided {:val, 206} p2: decided {:val, 206} p3: decided {:val, 206} p1: decided {:val, 206} p4: decided {:val, 206} p5 - p1 is leader p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p5 Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 Starting paxos for p1 :p5: started :p2: started :p3: started :p4: started :p1: started p5 - Propose 2 with action nil p2 - Propose 2 with action nil p3 - Propose 2 with action nil p4 - Propose 2 with action nil p1 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 - p1 is leader p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p5 - accept 2 1 {:val, 205} p4 - accept 2 1 {:val, 205} p3 - accept 2 1 {:val, 205} p1 - prepared 2 1 nil nil p2 - accept 2 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 205} p5 decided 2 {:val, 205} p3 decided 2 {:val, 205} p4 decided 2 {:val, 205} p1 decided 2 {:val, 205} p2: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p3: decided {:val, 205} p4: decided {:val, 205} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 :p3: started :p1: started :p4: started :p2: started :p5: started p3 - Propose 2 with action nil p1 - Propose 2 with action nil p4 - Propose 2 with action nil p5 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p4 - p1 is leader p5 - p1 is leader p3 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p3 - accept 2 1 {:val, 205} p1 - prepared 2 1 nil nil p4 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p5 - accept 2 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p3 decided 2 {:val, 205} p1 accepted 2 1 p4 decided 2 {:val, 205} p2 decided 2 {:val, 205} p5 decided 2 {:val, 205} p1 decided 2 {:val, 205} p1: decided {:val, 205} p4: decided {:val, 205} p2: decided {:val, 205} p5: decided {:val, 205} p3: decided {:val, 205} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p5 :p4: started :p3: started :p2: started :p1: started :p5: started p4 - Propose 2 with action nil p3 - Propose 2 with action nil p2 - Propose 2 with action nil p1 - Propose 2 with action nil p5 - Propose 2 with action nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p4 - accept 2 1 {:val, 205} p5 - accept 2 1 {:val, 205} p3 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p4 decided 2 {:val, 205} p2 decided 2 {:val, 205} p3 decided 2 {:val, 205} p1 accepted 2 1 p5 decided 2 {:val, 205} p1 decided 2 {:val, 205} p3: decided {:val, 205} p2: decided {:val, 205} p1: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p1: started :p4: started :p3: started :p2: started :p5: started p1 - Propose 2 with action nil p4 - Propose 2 with action nil p3 - Propose 2 with action nil p2 - Propose 2 with action nil p5 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 - p1 is leader p2 - p1 is leader p5 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p4 - accept 2 1 {:val, 205} p5 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p3 - accept 2 1 {:val, 205} p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p4 decided 2 {:val, 205} p5 decided 2 {:val, 205} p2 decided 2 {:val, 205} p3 decided 2 {:val, 205} p1 decided 2 {:val, 205} p3: decided {:val, 205} p1: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p2: decided {:val, 205} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 :p3: started :p2: started :p1: started :p4: started :p5: started p3 - Propose 2 with action nil p2 - Propose 2 with action nil p1 - Propose 2 with action nil p4 - Propose 2 with action nil p5 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 - p1 is leader p5 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 2 1 nil nil p3 - accept 2 1 {:val, 205} p5 - accept 2 1 {:val, 205} p4 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p2 decided 2 {:val, 205} p3 decided 2 {:val, 205} p5 decided 2 {:val, 205} p1 decided 2 {:val, 205} p4 decided 2 {:val, 205} p2: decided {:val, 205} p3: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p5 Starting paxos for p4 :p3: started :p1: started :p2: started :p5: started :p4: started p3 - Propose 2 with action nil p1 - Propose 2 with action nil p2 - Propose 2 with action nil p5 - Propose 2 with action nil p4 - Propose 2 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - p1 is leader p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p3 - accept 2 1 {:val, 205} p1 - prepared 2 1 nil nil p2 - accept 2 1 {:val, 205} p5 - accept 2 1 {:val, 205} p4 - accept 2 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p3 decided 2 {:val, 205} p1 accepted 2 1 p2 decided 2 {:val, 205} p5 decided 2 {:val, 205} p4 decided 2 {:val, 205} p1 decided 2 {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 :p2: started :p1: started :p3: started :p4: started :p5: started p2 - Propose 2 with action nil p1 - Propose 2 with action nil p3 - Propose 2 with action nil p4 - Propose 2 with action nil p5 - Propose 2 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p5 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p1 - prepared 2 1 nil nil p3 - accept 2 1 {:val, 205} p4 - accept 2 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p3 decided 2 {:val, 205} p2 decided 2 {:val, 205} p4 decided 2 {:val, 205} p5 decided 2 {:val, 205} p1 accepted 2 1 p1 decided 2 {:val, 205} p1: decided {:val, 205} p2: decided {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p4: decided {:val, 205} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p5: started :p1: started :p4: started :p3: started :p2: started p5 - Propose 2 with action nil p1 - Propose 2 with action nil p4 - Propose 2 with action nil p3 - Propose 2 with action nil p2 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p5 - accept 2 1 {:val, 205} p4 - accept 2 1 {:val, 205} p1 - prepared 2 1 nil nil p3 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p4 decided 2 {:val, 205} p5 decided 2 {:val, 205} p2 decided 2 {:val, 205} p3 decided 2 {:val, 205} p1 accepted 2 1 p1 decided 2 {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p2: decided {:val, 205} p1: decided {:val, 205} p3: decided {:val, 205} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p5 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 :p5: started :p2: started :p1: started :p4: started :p3: started p5 - Propose 2 with action nil p2 - Propose 2 with action nil p1 - Propose 2 with action nil p4 - Propose 2 with action nil p3 - Propose 2 with action nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p4 - p1 is leader p1 - p1 is leader p5 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p3 - p1 is leader p5 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 2 1 nil nil p5 - accept 2 1 {:val, 205} p2 - accept 2 1 {:val, 205} p4 - accept 2 1 {:val, 205} p3 - accept 2 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p5 decided 2 {:val, 205} p3 decided 2 {:val, 205} p2 decided 2 {:val, 205} p4 decided 2 {:val, 205} p1 decided 2 {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p1: started :p2: started :p4: started :p3: started :p5: started p1 - Propose 2 with action nil p2 - Propose 2 with action nil p4 - Propose 2 with action nil p3 - Propose 2 with action nil p5 - Propose 2 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p5 - p1 is leader p1 sending all prepare 2 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 2 1 nil nil p2 - accept 2 1 {:val, 205} p1 Try to run prepared p4 - accept 2 1 {:val, 205} p5 - accept 2 1 {:val, 205} p3 - accept 2 1 {:val, 205} p1 5 4 true p1 - prepared 2 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 2 1 {:val, 205} p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p1 accepted 2 1 p3 decided 2 {:val, 205} p2 decided 2 {:val, 205} p4 decided 2 {:val, 205} p5 decided 2 {:val, 205} p1 decided 2 {:val, 205} p1: decided {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p3: decided {:val, 205} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p1: started :p5: started :p3: started :p4: started :p2: started p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p2 - Propose 1 with action nil p4 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p4 - p1 is leader p1 Try to run prepared p1 5 1 false p2 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p3 - p1 is leader p5 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 1 1 p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p1 decided 1 {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p2 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5: decided {:val, 207} p5 - p1 is leader p3: decided {:val, 207} p4: decided {:val, 207} p1: decided {:val, 207} p2: decided {:val, 207} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p1: started :p4: started :p3: started :p5: started :p2: started p4 - Propose 1 with action nil p3 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - p1 is leader p1 5 3 false p2 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p4 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p3 - p1 is leader p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p5 decided 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p5 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p1 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - p1 is leader p1: decided {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p2: decided {:val, 207} p3: decided {:val, 207} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 :p3: started :p5: started :p4: started :p2: started :p1: started p5 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p4 - prepare from p1 p5 - prepare from p1 p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p4 - p1 is leader p1 Try to run prepared p1 5 3 false p3 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p4 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p5 decided 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - p1 is leader p3: decided {:val, 207} p2: decided {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p1: decided {:val, 207} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p4: started :p5: started :p2: started :p1: started p4 - Propose 1 with action nil :p3: started p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p4 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p5 - accept 1 1 {:val, 207} p1 accepted 1 1 p3 - accept 1 1 {:val, 207} p1 accepted 1 1 p4 decided 1 {:val, 207} p5 decided 1 {:val, 207} p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 decided 1 {:val, 207} p1 accepted 1 1 p4 - p1 is leader p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - p1 is leader p3 - p1 is leader p5 - Propose 1 with action nil p4 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p2 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1: decided {:val, 207} p3: decided {:val, 207} p4: decided {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 :p5: started :p2: started :p3: started :p1: started :p4: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p3 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 1 1 p5 decided 1 {:val, 207} p1 decided 1 {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p1 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - p1 is leader p1: decided {:val, 207} p2: decided {:val, 207} p4: decided {:val, 207} p3: decided {:val, 207} p5: decided {:val, 207} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p4: started :p5: started p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p4 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p3 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p2 - p1 is leader p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 207} p4 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - p1 is leader p4: decided {:val, 207} p5: decided {:val, 207} p2: decided {:val, 207} p1: decided {:val, 207} p3: decided {:val, 207} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 :p5: started :p2: started :p4: started :p3: started :p1: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p3 - accept 1 1 {:val, 207} p3 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 decided 1 {:val, 207} p3 decided 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p4 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p4 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - p1 is leader p3: decided {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p4: decided {:val, 207} p1: decided {:val, 207} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p5 :p5: started :p4: started :p3: started :p2: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil :p1: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p3 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p5 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 207} p3 decided 1 {:val, 207} p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p5 decided 1 {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p4 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - p1 is leader p5 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - p1 is leader p4 - Propose 1 with action nil p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - p1 is leader p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3: decided {:val, 207} p5: decided {:val, 207} p1: decided {:val, 207} p5 - p1 is leader p2: decided {:val, 207} p4: decided {:val, 207} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p5 :p2: started :p3: started :p4: started p2 - Propose 1 with action nil :p5: started p3 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p1: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p5 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 207} p3 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 - accept 1 1 {:val, 207} p2 - p1 is leader p1 accepted 1 1 p2 decided 1 {:val, 207} p4 - accept 1 1 {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 decided 1 {:val, 207} p1 accepted 1 1 p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - p1 is leader p3: decided {:val, 207} p1: decided {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p4: decided {:val, 207} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p1: started :p5: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p3: started p2 SET BALLOT VALUE 3 nil :p2: started p4 SET BALLOT VALUE 3 nil :p4: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - p1 is leader p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p5 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p4 - accept 1 1 {:val, 207} p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p2 - accept 1 1 {:val, 207} p5 - Propose 1 with action nil p3 - accept 1 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 1 1 p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p3 decided 1 {:val, 207} p1 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - p1 is leader p1 accepted 1 1 p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - p1 is leader p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p1 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p5 - p1 is leader p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p5: started :p4: started :p3: started :p1: started :p2: started p4 - Propose 1 with action nil p1 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p4 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2: decided {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p5: started :p4: started :p3: started :p1: started :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Propose 1 with action nil p5 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 decided 1 {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p3 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p2 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1: decided {:val, 207} p3: decided {:val, 207} p4: decided {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 :p4: started :p2: started :p5: started :p1: started :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Propose 1 with action nil p4 - Propose 1 with action nil p4 - p1 is leader p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 207} p2 decided 1 {:val, 207} p1 accepted 1 1 p5 decided 1 {:val, 207} p3 decided 1 {:val, 207} p1 decided 1 {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p1 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4: decided {:val, 207} p3: decided {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p1: decided {:val, 207} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p5 Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 :p5: started :p3: started :p1: started :p4: started :p2: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - p1 is leader p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p5 - prepare from p1 p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 207} p1 Try to run prepared p3 - accept 1 1 {:val, 207} p1 5 5 true p4 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p3 decided 1 {:val, 207} p1 decided 1 {:val, 207} p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p4 - Propose 1 with action nil p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p3: decided {:val, 207} p2: decided {:val, 207} p1: decided {:val, 207} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 :p1: started :p5: started :p2: started :p4: started :p3: started p1 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - p1 is leader p3 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p1 decided 1 {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p2 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1: decided {:val, 207} p5: decided {:val, 207} p3: decided {:val, 207} p2: decided {:val, 207} p4: decided {:val, 207} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 :p1: started :p3: started :p5: started :p2: started :p4: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 Try to run prepared p4 - accept 1 1 {:val, 207} p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2: decided {:val, 207} p3: decided {:val, 207} p4: decided {:val, 207} p5: decided {:val, 207} p1: decided {:val, 207} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p1 Starting paxos for p5 :p3: started :p2: started :p4: started :p1: started :p5: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - p1 is leader p1 - p1 is leader p2 - p1 is leader p5 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p5 decided 1 {:val, 207} p1 decided 1 {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p3 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p3 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p5: decided {:val, 207} p4: decided {:val, 207} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p5 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 :p5: started :p2: started :p3: started :p1: started :p4: started p5 - Propose 1 with action nil p2 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p5 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p3 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2: decided {:val, 207} p4: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p5: decided {:val, 207} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 :p3: started :p1: started :p5: started :p2: started :p4: started p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p3 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - accept 1 1 {:val, 207} p1 5 4 true p4 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 207} p2 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 207} p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p1 decided 1 {:val, 207} p5 decided 1 {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p4 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p3: decided {:val, 207} p1: decided {:val, 207} p4: decided {:val, 207} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 :p1: started :p2: started :p3: started :p4: started :p5: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Propose 1 with action nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 207} p2 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 207} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 207} p4 decided 1 {:val, 207} p3 decided 1 {:val, 207} p5 decided 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p3 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p4 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p1 - Propose 1 with action nil p5 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p2 - Propose 1 with action nil p5 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p2 - Has already decided for 1 sending {:val, 207} p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p1 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p3 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p1: decided {:val, 207} p3: decided {:val, 207} p2: decided {:val, 207} p5: decided {:val, 207} p4: decided {:val, 207} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p3: started p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2: decided {:val, 209} p1: decided {:val, 209} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p2: started p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 207} p1 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 207} p3 decided 1 {:val, 207} p3: decided {:val, 207} p3 - p1 is leader p1: decided {:val, 207} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 207, val: 207] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil :p3: started p3 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p3 - accept 1 1 {:val, 209} p2 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 209} p3 decided 1 {:val, 209} p2: decided {:val, 209} p3 - p2 is leader p3: decided {:val, 209} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p3: started :p1: started :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p2 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p2 accepted 1 1 p3 - accept 1 1 {:val, 209} p2 accepted 1 1 p2 decided 1 {:val, 209} p3 decided 1 {:val, 209} p3: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p3: started :p2: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p2 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p2 accepted 1 1 p3 - accept 1 1 {:val, 209} p2 accepted 1 1 p3 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2: decided {:val, 209} p3 - p2 is leader p3: decided {:val, 209} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p3 - accept 1 1 {:val, 207} p2 SET BALLOT VALUE {:val, 207} p2 - accept 1 1 {:val, 207} p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 207} p3 decided 1 {:val, 207} p3: decided {:val, 207} p3 - p2 is leader p2: decided {:val, 207} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p2: started :p3: started p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p2 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 decided 1 {:val, 209} p2 decided 1 {:val, 209} p1: decided {:val, 209} p2: decided {:val, 209} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p2: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p2 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 decided 1 {:val, 209} p2 decided 1 {:val, 209} p2: decided {:val, 209} p1: decided {:val, 209} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p3: started :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p2 - accept 1 1 {:val, 209} p2 - p1 is leader p1 accepted 1 1 p1 decided 1 {:val, 209} p2 decided 1 {:val, 209} p1: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p3: started :p1: started p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p2 - p1 is leader p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p2 - accept 1 1 {:val, 209} p1 accepted 1 1 p2 decided 1 {:val, 209} p1 decided 1 {:val, 209} p2: decided {:val, 209} p1: decided {:val, 209} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p2 SET BALLOT VALUE {:val, 209} p3 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 209} p3 decided 1 {:val, 209} p3: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 :p3: started :p2: started :p1: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 204} p1 decided 1 {:val, 204} p1: decided {:val, 204} p3: decided {:val, 204} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p2: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 202} p3 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p3 decided 1 {:val, 202} p3: decided {:val, 202} p1: decided {:val, 202} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 202, val: 202] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 209} p1 decided 1 {:val, 209} p1: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p1: started :p2: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 202} p3 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p3 decided 1 {:val, 202} p3: decided {:val, 202} p1: decided {:val, 202} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 202, val: 202] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p1: started :p3: started :p2: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 202} p2 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p2 decided 1 {:val, 202} p2: decided {:val, 202} p1: decided {:val, 202} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 202, val: 202] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 :p2: started :p3: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 3 2 false p1 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 209} p1 decided 1 {:val, 209} p1: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p2: started :p1: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p2 SET BALLOT VALUE {:val, 209} p3 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 209} p3 decided 1 {:val, 209} p3: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 209, val: 209] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p2 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p2 accepted 1 1 p2 accepted 1 1 p3 decided 1 {:val, 204} p2 decided 1 {:val, 204} p2: decided {:val, 204} p3: decided {:val, 204} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 204, val: 204] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 :p3: started :p1: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 3 2 false p2 SET BALLOT VALUE {:val, 204} p3 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p2 accepted 1 1 p2 accepted 1 1 p3 decided 1 {:val, 204} p2 decided 1 {:val, 204} p2: decided {:val, 204} p3: decided {:val, 204} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 204, val: 204] Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p5: started :p2: started :p1: started p1 - Propose 1 with action nil :p4: started :p3: started p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p2 - accept 1 1 {:val, 208} p1 accepted 1 1 p4 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p4 decided 1 {:val, 208} p2 decided 1 {:val, 208} p2 - p1 is leader p4 - p1 is leader p1: decided {:val, 208} p2: decided {:val, 208} p4: decided {:val, 208} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p1: started :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p5: started p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p4: started :p3: started p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p3 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - p1 is leader p2 - accept 1 1 {:val, 202} p1 SET BALLOT VALUE {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p1 decided 1 {:val, 202} p2: decided {:val, 202} p1: decided {:val, 202} p3: decided {:val, 202} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 202, val: 202, val: 202] Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 :p1: started :p3: started :p5: started :p4: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - p1 is leader p4 - p3 is leader p3 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p4 - prepare from p3 p5 - prepare from p3 p3 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 5 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 5 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 5 3 false p3 SET BALLOT VALUE {:val, 210} p3 - accept 1 1 {:val, 210} p3 accepted 1 1 p4 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p3 accepted 1 1 p3 accepted 1 1 p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3: decided {:val, 210} p5 - p3 is leader p5: decided {:val, 210} p4: decided {:val, 210} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p5: started :p2: started :p1: started p2 - Propose 1 with action nil :p3: started p2 SET BALLOT VALUE 3 nil :p4: started p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 202} p2 - accept 1 1 {:val, 202} p2 accepted 1 1 p3 - accept 1 1 {:val, 202} p2 accepted 1 1 p5 - accept 1 1 {:val, 202} p2 accepted 1 1 p2 decided 1 {:val, 202} p3 - p2 is leader p5 decided 1 {:val, 202} p3 decided 1 {:val, 202} p2: decided {:val, 202} p5 - p2 is leader p5: decided {:val, 202} p3: decided {:val, 202} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 202, val: 202, val: 202] Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 :p3: started :p5: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p4: started p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p4 - p3 is leader p3 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p5 - prepare from p3 p4 - prepare from p3 p3 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 5 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 5 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 5 3 false p3 SET BALLOT VALUE {:val, 210} p3 - accept 1 1 {:val, 210} p3 accepted 1 1 p5 - accept 1 1 {:val, 210} p3 accepted 1 1 p4 - accept 1 1 {:val, 210} p3 accepted 1 1 p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3: decided {:val, 210} p5 - p3 is leader p5: decided {:val, 210} p4: decided {:val, 210} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p5: started :p1: started :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p4: started p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p1 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 accepted 1 1 p5 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3 decided 1 {:val, 210} p3: decided {:val, 210} p5 - p1 is leader p5: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 :p4: started :p3: started :p1: started :p5: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p2: started p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p5 - accept 1 1 {:val, 208} p1 accepted 1 1 p4 - accept 1 1 {:val, 208} p1 accepted 1 1 p4 decided 1 {:val, 208} p5 decided 1 {:val, 208} p1 decided 1 {:val, 208} p1: decided {:val, 208} p5 - p1 is leader p4: decided {:val, 208} p5: decided {:val, 208} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p3: started :p4: started :p1: started p1 - Propose 1 with action nil :p5: started p1 SET BALLOT VALUE 3 nil :p2: started p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 208} p5 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p2 decided 1 {:val, 208} p5 decided 1 {:val, 208} p2 - p1 is leader p1: decided {:val, 208} p5 - p1 is leader p5: decided {:val, 208} p2: decided {:val, 208} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p3: started :p1: started :p4: started :p5: started :p2: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p2 - accept 1 1 {:val, 202} p1 accepted 1 1 p4 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 decided 1 {:val, 202} p2 decided 1 {:val, 202} p4 decided 1 {:val, 202} p2: decided {:val, 202} p1: decided {:val, 202} p4: decided {:val, 202} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 202, val: 202, val: 202] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p2: started :p4: started :p5: started :p3: started p3 - Propose 1 with action nil :p1: started p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - p1 is leader p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p3 - accept 1 1 {:val, 210} p1 accepted 1 1 p5 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 decided 1 {:val, 210} p3 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3: decided {:val, 210} p5 - p1 is leader p5: decided {:val, 210} p1: decided {:val, 210} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p5 Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 :p1: started :p5: started :p3: started :p2: started :p4: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p2 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 205} p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 205, val: 205, val: 205] Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 Starting paxos for p3 :p2: started :p1: started :p4: started :p5: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p2 is leader p5 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3 decided 1 {:val, 210} p5: decided {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p5 Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 :p4: started :p5: started :p2: started :p1: started :p3: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 208} p4 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 208} p3 decided 1 {:val, 208} p1 decided 1 {:val, 208} p1: decided {:val, 208} p3: decided {:val, 208} p4: decided {:val, 208} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p5 Starting paxos for p4 Starting paxos for p1 Starting paxos for p2 :p3: started :p5: started :p4: started :p1: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 206} p3 decided 1 {:val, 206} p2 decided 1 {:val, 206} p2: decided {:val, 206} p1: decided {:val, 206} p3: decided {:val, 206} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 206, val: 206, val: 206] Starting paxos for p5 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 :p4: started :p5: started :p2: started :p3: started :p1: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 203} p5 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 203} p4 decided 1 {:val, 203} p1 decided 1 {:val, 203} p1: decided {:val, 203} p4: decided {:val, 203} p5: decided {:val, 203} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p5 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 :p1: started :p3: started :p5: started :p2: started :p4: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 206} p4 decided 1 {:val, 206} p1 decided 1 {:val, 206} p1: decided {:val, 206} p4: decided {:val, 206} p3: decided {:val, 206} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 206, val: 206, val: 206] Starting paxos for p5 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 :p5: started :p1: started :p4: started :p3: started :p2: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 - p2 is leader p3 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 203} p2 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 203} p5 decided 1 {:val, 203} p3 decided 1 {:val, 203} p3: decided {:val, 203} p2: decided {:val, 203} p5: decided {:val, 203} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 203, val: 203, val: 203] Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 Starting paxos for p4 :p2: started :p1: started :p3: started :p5: started :p4: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - p2 is leader p5 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 210} p5 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5: decided {:val, 210} p4: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 Starting paxos for p1 :p3: started :p4: started :p2: started :p5: started :p1: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 206} p1 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 206} p3 decided 1 {:val, 206} p5 decided 1 {:val, 206} p5: decided {:val, 206} p1: decided {:val, 206} p3: decided {:val, 206} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p4 Starting paxos for p5 Starting paxos for p3 Starting paxos for p1 :p2: started :p4: started :p5: started :p3: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p1 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 210} p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p3: decided {:val, 210} p1: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p5 :p3: started :p1: started :p4: started :p5: started :p2: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - p1 is leader p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p3 - accept 1 1 {:val, 208} p1 SET BALLOT VALUE {:val, 208} p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p1 5 4 true p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p5 decided 1 {:val, 208} p1 decided 1 {:val, 208} p3: decided {:val, 208} p5 - p1 is leader p1: decided {:val, 208} p5: decided {:val, 208} p2: decided {:val, 208} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 :p5: started :p2: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p3: started p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p1: started p4 SET BALLOT VALUE 3 nil :p4: started p1 - Propose 1 with action nil p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 209} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p2 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p1 accepted 1 1 p4 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 209} p2 decided 1 {:val, 209} p1 decided 1 {:val, 209} p4 decided 1 {:val, 209} p1: decided {:val, 209} p2: decided {:val, 209} p3: decided {:val, 209} p4: decided {:val, 209} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209] Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p5: started p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p4: started :p1: started :p2: started p2 - Propose 1 with action nil p1 - p1 is leader p1 sending all prepare 1 1 p2 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p2 - accept 1 1 {:val, 202} p4 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 decided 1 {:val, 202} p5 decided 1 {:val, 202} p4 decided 1 {:val, 202} p1 accepted 1 1 p2 decided 1 {:val, 202} p4 - p1 is leader p2 - p1 is leader p2: decided {:val, 202} p5 - p1 is leader p5: decided {:val, 202} p4: decided {:val, 202} p1: decided {:val, 202} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202] Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 :p3: started :p4: started :p1: started :p2: started :p5: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 209} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p3 - p1 is leader p4 - p1 is leader p1 Try to run prepared p1 5 4 true p5 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 209} p3 decided 1 {:val, 209} p4 decided 1 {:val, 209} p1 decided 1 {:val, 209} p1: decided {:val, 209} p5 - p1 is leader p4: decided {:val, 209} p3: decided {:val, 209} p5: decided {:val, 209} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 :p2: started :p3: started :p1: started :p5: started p1 - Propose 1 with action nil :p4: started p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p5 - p1 is leader p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p4 - prepare from p2 p3 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 208} p3 - accept 1 1 {:val, 208} p2 - prepared 1 1 nil nil p2 Try to run prepared p4 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p3 - p2 is leader p2 5 4 true p2 - accept 1 1 {:val, 208} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p4 decided 1 {:val, 208} p5 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2 decided 1 {:val, 208} p4 - p2 is leader p3: decided {:val, 208} p5 - p2 is leader p2: decided {:val, 208} p4: decided {:val, 208} p5: decided {:val, 208} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 :p4: started :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p5 SET BALLOT VALUE 3 nil :p5: started p1 SET BALLOT VALUE 3 nil :p1: started p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p4 - accept 1 1 {:val, 209} p1 SET BALLOT VALUE {:val, 209} p1 - prepared 1 1 nil nil p1 Try to run prepared p5 - accept 1 1 {:val, 209} p1 5 4 true p2 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 209} p4 decided 1 {:val, 209} p1 decided 1 {:val, 209} p5 decided 1 {:val, 209} p5: decided {:val, 209} p2: decided {:val, 209} p1: decided {:val, 209} p2 - p1 is leader p4 - p1 is leader p4: decided {:val, 209} p5 - p1 is leader p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209] Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p5: started :p3: started :p1: started :p4: started :p2: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p3 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p1 SET BALLOT VALUE {:val, 209} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 209} p2 decided 1 {:val, 209} p5 decided 1 {:val, 209} p1 decided 1 {:val, 209} p3: decided {:val, 209} p5 - p1 is leader p5: decided {:val, 209} p1: decided {:val, 209} p2: decided {:val, 209} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209] Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p5 :p1: started :p4: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p5: started p5 SET BALLOT VALUE 3 nil :p3: started p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p2 - Propose 1 with action nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 1 1 {:val, 202} p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p5 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 202} p5 decided 1 {:val, 202} p2 decided 1 {:val, 202} p1 decided 1 {:val, 202} p2: decided {:val, 202} p5 - p1 is leader p1: decided {:val, 202} p5: decided {:val, 202} p3: decided {:val, 202} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202] Starting paxos for p4 Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p1: started :p4: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p5: started :p3: started p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p5 - p1 is leader p4 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p3 - p2 is leader p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p4 - accept 1 1 {:val, 209} p2 SET BALLOT VALUE {:val, 209} p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 4 true p2 - accept 1 1 {:val, 209} p2 accepted 1 1 p2 accepted 1 1 p3 - accept 1 1 {:val, 209} p2 accepted 1 1 p2 decided 1 {:val, 209} p3 decided 1 {:val, 209} p4 decided 1 {:val, 209} p5 - accept 1 1 {:val, 209} p5 decided 1 {:val, 209} p2 accepted 1 1 p4: decided {:val, 209} p5 - p2 is leader p5: decided {:val, 209} p3: decided {:val, 209} p2: decided {:val, 209} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209] Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p5: started :p3: started :p4: started :p2: started :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p1 - prepare from p2 p3 - prepare from p2 p2 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 202} p2 - prepared 1 1 nil nil p1 - accept 1 1 {:val, 202} p2 Try to run prepared p3 - accept 1 1 {:val, 202} p2 5 4 true p5 - accept 1 1 {:val, 202} p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 5 true p4 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p5 decided 1 {:val, 202} p1 decided 1 {:val, 202} p4 decided 1 {:val, 202} p2 accepted 1 1 p3 decided 1 {:val, 202} p2 decided 1 {:val, 202} p5: decided {:val, 202} p3: decided {:val, 202} p4: decided {:val, 202} p2: decided {:val, 202} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202] Starting paxos for p4 Starting paxos for p5 Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 :p4: started :p5: started :p1: started :p2: started :p3: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p2 - p1 is leader p5 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 203} p5 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 203} p2 decided 1 {:val, 203} p1 decided 1 {:val, 203} p3 decided 1 {:val, 203} p1: decided {:val, 203} p2: decided {:val, 203} p3: decided {:val, 203} p5: decided {:val, 203} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p5 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 :p5: started :p2: started :p1: started :p4: started :p3: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p2 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p1 decided 1 {:val, 205} p3 decided 1 {:val, 205} p1: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p2: decided {:val, 205} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 :p1: started :p5: started :p2: started :p4: started :p3: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p4 - p1 is leader p5 - p1 is leader p3 - p1 is leader p2 - p1 is leader p4 - p2 is leader p2 - p2 is leader p5 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 203} p5 - accept 1 1 {:val, 203} p2 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p2 Try to run prepared p2 5 4 true p2 - accept 1 1 {:val, 203} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p5 decided 1 {:val, 203} p4 decided 1 {:val, 203} p2 decided 1 {:val, 203} p3 decided 1 {:val, 203} p5: decided {:val, 203} p2: decided {:val, 203} p4: decided {:val, 203} p3: decided {:val, 203} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 :p5: started :p2: started :p4: started :p3: started :p1: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p3 - p1 is leader p2 - p1 is leader p1 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 205} p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p3 decided 1 {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p1: decided {:val, 205} p2: decided {:val, 205} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p5 :p3: started :p1: started :p2: started :p4: started :p5: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p4 - p1 is leader p1 - p1 is leader p5 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 205} p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p5 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 Starting paxos for p4 Starting paxos for p1 :p5: started :p3: started :p4: started :p2: started :p1: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 205} p2 decided 1 {:val, 205} p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p5: decided {:val, 205} p4: decided {:val, 205} p1: decided {:val, 205} p2: decided {:val, 205} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p5 Starting paxos for p3 Starting paxos for p2 Starting paxos for p1 :p4: started :p5: started :p3: started :p2: started :p1: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - p1 is leader p1 - p1 is leader p5 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 203} p5 decided 1 {:val, 203} p2 decided 1 {:val, 203} p1 decided 1 {:val, 203} p2: decided {:val, 203} p1: decided {:val, 203} p3: decided {:val, 203} p5: decided {:val, 203} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p3: started :p1: started :p2: started :p4: started :p5: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p5 - p1 is leader p4 - p2 is leader p2 - p2 is leader p3 - p2 is leader p5 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p4 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 202} p4 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p2 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 202} p2 Try to run prepared p2 5 4 true p2 - accept 1 1 {:val, 202} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p4 decided 1 {:val, 202} p3 decided 1 {:val, 202} p2 decided 1 {:val, 202} p5 decided 1 {:val, 202} p4: decided {:val, 202} p3: decided {:val, 202} p5: decided {:val, 202} p2: decided {:val, 202} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202] Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 :p3: started :p1: started :p4: started :p2: started :p5: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p2 - p1 is leader p1 - p1 is leader p5 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p2 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p5 decided 1 {:val, 205} p4: decided {:val, 205} p2: decided {:val, 205} p5: decided {:val, 205} p1: decided {:val, 205} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 :p2: started :p4: started :p3: started :p5: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p5 - p1 is leader p4 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 202} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p1 Try to run prepared p1 5 4 true p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 202} p4 decided 1 {:val, 202} p3 decided 1 {:val, 202} p5 decided 1 {:val, 202} p3: decided {:val, 202} p5: decided {:val, 202} p1: decided {:val, 202} p4: decided {:val, 202} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202] Starting paxos for p6 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 Starting paxos for p3 Starting paxos for p7 :p3: started :p7: started :p4: started :p1: started :p5: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil :p6: started p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p2: started p2 SET BALLOT VALUE 3 nil p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p5 - p1 is leader p1 7 4 false p3 - accept 1 1 {:val, 208} p3 - p1 is leader p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p5 - accept 1 1 {:val, 208} p1 accepted 1 1 p6 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p6 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p3: decided {:val, 208} p5: decided {:val, 208} p1: decided {:val, 208} p6: decided {:val, 208} p6: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p6 Starting paxos for p7 :p5: started :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p7: started p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p2: started :p6: started p2 SET BALLOT VALUE 3 nil :p3: started :p4: started p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p3 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p6 - p1 is leader p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p4 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p7 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 5 true p3 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 210} p7 decided 1 {:val, 210} p1 decided 1 {:val, 210} p6 decided 1 {:val, 210} p3 decided 1 {:val, 210} p6: decided {:val, 210} p7 - p1 is leader p7: decided {:val, 210} p3: decided {:val, 210} p4: decided {:val, 210} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p6 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 Starting paxos for p3 Starting paxos for p7 :p7: started :p2: started :p3: started :p4: started p7 - Propose 1 with action nil :p5: started p7 SET BALLOT VALUE 3 nil :p6: started p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p7 - prepare from p2 p3 - prepare from p2 p2 - prepare from p2 p5 - p2 is leader p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p3 - p2 is leader p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p2 SET BALLOT VALUE {:val, 203} p2 - accept 1 1 {:val, 203} p2 accepted 1 1 p3 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 203} p7 decided 1 {:val, 203} p5 decided 1 {:val, 203} p3 decided 1 {:val, 203} p7: decided {:val, 203} p7 - p2 is leader p3: decided {:val, 203} p2: decided {:val, 203} p5: decided {:val, 203} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p1 Starting paxos for p5 Starting paxos for p2 Starting paxos for p6 Starting paxos for p3 Starting paxos for p4 Starting paxos for p7 :p1: started :p4: started :p5: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p3: started :p7: started p2 SET BALLOT VALUE 3 nil :p2: started p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p6: started p6 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p5 - p1 is leader p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p5 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 1 p3 - prepare from p2 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p2 - prepare from p2 p4 - prepare from p2 I think that is the cause p4 SET BALLOT VALUE 3 nil p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p3 - accept 1 1 {:val, 208} p2 SET BALLOT VALUE {:val, 208} p2 - accept 1 1 {:val, 208} p2 accepted 1 1 p2 accepted 1 1 p5 - accept 1 1 {:val, 208} p2 accepted 1 1 p4 - accept 1 1 {:val, 208} p3 - p2 is leader p4 - p2 is leader p2 accepted 1 1 p2 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p4 decided 1 {:val, 208} p4: decided {:val, 208} p3: decided {:val, 208} p5: decided {:val, 208} p2: decided {:val, 208} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p4 Starting paxos for p5 Starting paxos for p1 Starting paxos for p6 Starting paxos for p3 Starting paxos for p7 :p3: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil :p2: started p2 SET BALLOT VALUE 3 nil :p7: started p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p5: started :p6: started :p1: started p4 SET BALLOT VALUE 3 nil :p4: started p5 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p5 - prepare from p2 p7 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p5 - p2 is leader p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p2 SET BALLOT VALUE {:val, 204} p2 - accept 1 1 {:val, 204} p2 accepted 1 1 p3 - accept 1 1 {:val, 204} p2 accepted 1 1 p5 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p3 - p2 is leader p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 204} p3 decided 1 {:val, 204} p7 decided 1 {:val, 204} p5 decided 1 {:val, 204} p3: decided {:val, 204} p7 - p2 is leader p2: decided {:val, 204} p7: decided {:val, 204} p5: decided {:val, 204} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204] Starting paxos for p1 Starting paxos for p6 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 Starting paxos for p7 :p4: started :p1: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p2: started :p6: started p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p7: started p2 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil :p5: started :p3: started p5 - p1 is leader p6 - p1 is leader p4 - p1 is leader p2 - p1 is leader p5 - p2 is leader p6 - p2 is leader p4 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 1 p6 - prepare from p2 p5 - prepare from p2 p2 SET BALLOT VALUE 2 nil p4 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p6 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p2 SET BALLOT VALUE {:val, 209} p2 - accept 1 1 {:val, 209} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p4 - accept 1 1 {:val, 209} p2 accepted 1 1 p4 decided 1 {:val, 209} p5 decided 1 {:val, 209} p6 decided 1 {:val, 209} p2 decided 1 {:val, 209} p4: decided {:val, 209} p6: decided {:val, 209} p5: decided {:val, 209} p2: decided {:val, 209} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209] Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 Starting paxos for p4 Starting paxos for p6 Starting paxos for p1 Starting paxos for p7 :p4: started :p1: started :p2: started :p3: started p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil :p7: started :p5: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p6: started p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 - p1 is leader p5 - p1 is leader p4 - p1 is leader p7 - p1 is leader p3 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p4 - prepare from p3 p5 - prepare from p3 p7 - prepare from p3 p3 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 3 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 4 false p3 SET BALLOT VALUE {:val, 210} p3 - accept 1 1 {:val, 210} p3 accepted 1 1 p4 - accept 1 1 {:val, 210} p4 - p3 is leader p3 accepted 1 1 p5 - accept 1 1 {:val, 210} p3 accepted 1 1 p7 - accept 1 1 {:val, 210} p5 - p3 is leader p3 accepted 1 1 p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p7 decided 1 {:val, 210} p4: decided {:val, 210} p7 - p3 is leader p3: decided {:val, 210} p5: decided {:val, 210} p7: decided {:val, 210} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p5 Starting paxos for p6 Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p7 :p1: started :p7: started :p2: started :p3: started :p5: started :p4: started :p6: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p4 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p1 SET BALLOT VALUE {:val, 203} p6 - accept 1 1 {:val, 203} p1 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p1 accepted 1 1 p4 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p2 - accept 1 1 {:val, 203} p2 - p1 is leader p1 accepted 1 1 p1 decided 1 {:val, 203} p2 decided 1 {:val, 203} p6 decided 1 {:val, 203} p4 decided 1 {:val, 203} p6: decided {:val, 203} p1: decided {:val, 203} p2: decided {:val, 203} p4: decided {:val, 203} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p4 Starting paxos for p5 Starting paxos for p3 Starting paxos for p2 Starting paxos for p6 Starting paxos for p1 Starting paxos for p7 :p7: started :p4: started :p2: started :p1: started :p6: started :p5: started :p3: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p6 - prepare from p2 p3 - prepare from p2 p2 - prepare from p2 p7 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p3 - p2 is leader p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p6 - accept 1 1 {:val, 203} p6 - p2 is leader p2 SET BALLOT VALUE {:val, 203} p3 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 203} p6 decided 1 {:val, 203} p3 decided 1 {:val, 203} p7 decided 1 {:val, 203} p6: decided {:val, 203} p7 - p2 is leader p7: decided {:val, 203} p2: decided {:val, 203} p3: decided {:val, 203} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p6 Starting paxos for p4 Starting paxos for p5 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p7 :p4: started :p1: started :p6: started :p2: started :p5: started :p7: started :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p6 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p1 SET BALLOT VALUE {:val, 203} p1 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p3 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 203} p3 decided 1 {:val, 203} p4 decided 1 {:val, 203} p6 decided 1 {:val, 203} p6: decided {:val, 203} p4: decided {:val, 203} p1: decided {:val, 203} p3: decided {:val, 203} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p5 Starting paxos for p1 Starting paxos for p7 Starting paxos for p6 Starting paxos for p2 Starting paxos for p3 Starting paxos for p4 :p5: started :p1: started :p7: started :p6: started :p2: started :p3: started :p4: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p6 - p2 is leader p2 - p2 is leader p3 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p6 - prepare from p2 p3 - prepare from p2 p2 - prepare from p2 p4 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p2 SET BALLOT VALUE {:val, 204} p6 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p6 decided 1 {:val, 204} p3 decided 1 {:val, 204} p2 decided 1 {:val, 204} p4 decided 1 {:val, 204} p2: decided {:val, 204} p3: decided {:val, 204} p4: decided {:val, 204} p6: decided {:val, 204} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204] Starting paxos for p3 Starting paxos for p2 Starting paxos for p7 Starting paxos for p5 Starting paxos for p6 Starting paxos for p4 Starting paxos for p1 :p6: started :p3: started :p2: started :p1: started :p7: started :p5: started :p4: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p6 - p1 is leader p5 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p5 - prepare from p1 p6 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p1 SET BALLOT VALUE {:val, 208} p4 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p5 decided 1 {:val, 208} p4 decided 1 {:val, 208} p6 decided 1 {:val, 208} p6: decided {:val, 208} p1: decided {:val, 208} p4: decided {:val, 208} p5: decided {:val, 208} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p6 Starting paxos for p2 Starting paxos for p7 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 :p5: started :p6: started :p2: started :p7: started :p1: started :p4: started :p3: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p1 - p1 is leader p7 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p7 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p1 SET BALLOT VALUE {:val, 201} p7 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p1 - accept 1 1 {:val, 201} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 201} p4 decided 1 {:val, 201} p1 decided 1 {:val, 201} p3 decided 1 {:val, 201} p1: decided {:val, 201} p3: decided {:val, 201} p4: decided {:val, 201} p7: decided {:val, 201} p7: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201] Starting paxos for p7 Starting paxos for p6 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 :p7: started :p6: started :p2: started :p4: started :p3: started :p5: started :p1: started p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p3 - p1 is leader p4 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p3 decided 1 {:val, 208} p4 decided 1 {:val, 208} p5 decided 1 {:val, 208} p3: decided {:val, 208} p5: decided {:val, 208} p1: decided {:val, 208} p4: decided {:val, 208} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p6 Starting paxos for p7 Starting paxos for p5 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p2 :p6: started :p7: started :p5: started :p1: started :p4: started :p3: started :p2: started p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 - p1 is leader p4 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p1 SET BALLOT VALUE {:val, 203} p1 - accept 1 1 {:val, 203} p4 - accept 1 1 {:val, 203} p3 - accept 1 1 {:val, 203} p2 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 203} p4 decided 1 {:val, 203} p3 decided 1 {:val, 203} p2 decided 1 {:val, 203} p4: decided {:val, 203} p3: decided {:val, 203} p2: decided {:val, 203} p1: decided {:val, 203} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203] Starting paxos for p3 Starting paxos for p4 Starting paxos for p1 Starting paxos for p7 Starting paxos for p6 Starting paxos for p2 Starting paxos for p5 :p3: started :p1: started :p7: started :p4: started :p2: started :p6: started :p5: started p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p6 - p2 is leader p7 - p2 is leader p2 - p2 is leader p5 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p7 - prepare from p2 p6 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p2 SET BALLOT VALUE {:val, 201} p7 - accept 1 1 {:val, 201} p2 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p7 decided 1 {:val, 201} p2 decided 1 {:val, 201} p6 decided 1 {:val, 201} p5 decided 1 {:val, 201} p2: decided {:val, 201} p6: decided {:val, 201} p5: decided {:val, 201} p7: decided {:val, 201} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p1 Starting paxos for p7 Starting paxos for p5 Starting paxos for p3 Starting paxos for p6 Starting paxos for p4 :p5: started :p2: started :p1: started :p3: started :p7: started :p6: started :p4: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - p2 is leader p6 - p2 is leader p4 - p2 is leader p5 - p2 is leader p6 - p3 is leader p3 - p3 is leader p4 - p3 is leader p5 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p4 - prepare from p3 p6 - prepare from p3 p5 - prepare from p3 p3 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 3 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 4 false p3 SET BALLOT VALUE {:val, 208} p5 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p3 accepted 1 1 p4 - accept 1 1 {:val, 208} p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p3 decided 1 {:val, 208} p5 decided 1 {:val, 208} p4 decided 1 {:val, 208} p6 decided 1 {:val, 208} p5: decided {:val, 208} p3: decided {:val, 208} p4: decided {:val, 208} p6: decided {:val, 208} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p2 Starting paxos for p4 Starting paxos for p7 Starting paxos for p6 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 :p2: started :p4: started :p7: started :p6: started :p3: started :p5: started :p1: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p6 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 7 4 false p1 SET BALLOT VALUE {:val, 204} p6 - accept 1 1 {:val, 204} p1 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 204} p6 decided 1 {:val, 204} p3 decided 1 {:val, 204} p5 decided 1 {:val, 204} p3: decided {:val, 204} p5: decided {:val, 204} p1: decided {:val, 204} p6: decided {:val, 204} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204] Starting paxos for p1 Starting paxos for p7 Starting paxos for p2 Starting paxos for p6 Starting paxos for p3 Starting paxos for p5 Starting paxos for p4 :p1: started :p7: started :p2: started :p6: started :p3: started :p5: started :p4: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p3 - p1 is leader p5 - p1 is leader p6 - p1 is leader p4 - p1 is leader p3 - p3 is leader p5 - p3 is leader p6 - p3 is leader p3 sending all prepare 1 1 p3 SET BALLOT VALUE 2 nil p6 - prepare from p3 p5 - prepare from p3 p3 - prepare from p3 p4 - prepare from p3 p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 1 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 2 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 3 false p3 - prepared 1 1 nil nil p3 Try to run prepared p3 7 4 false p3 SET BALLOT VALUE {:val, 204} p6 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p3 accepted 1 1 p4 - p3 is leader p3 accepted 1 1 p3 accepted 1 1 p3 accepted 1 1 p6 decided 1 {:val, 204} p5 decided 1 {:val, 204} p3 decided 1 {:val, 204} p4 decided 1 {:val, 204} p6: decided {:val, 204} p3: decided {:val, 204} p5: decided {:val, 204} p4: decided {:val, 204} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204] Starting paxos for p7 Starting paxos for p6 Starting paxos for p1 Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 :p7: started :p6: started :p1: started :p5: started :p2: started :p4: started :p3: started p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p5 - p2 is leader p2 - p2 is leader p3 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 7 4 false p2 SET BALLOT VALUE {:val, 208} p5 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p5 decided 1 {:val, 208} p4 decided 1 {:val, 208} p2 decided 1 {:val, 208} p3 decided 1 {:val, 208} p2: decided {:val, 208} p4: decided {:val, 208} p3: decided {:val, 208} p5: decided {:val, 208} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208] Starting paxos for p4 Starting paxos for p9 Starting paxos for p8 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p10 Starting paxos for p7 Starting paxos for p6 Starting paxos for p11 :p10: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p9: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p1: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p4: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p2: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p5: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p6: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p11: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil :p7: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] :p3: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p8: started with [:p5, :p11, :p2, :p7, :p1, :p8, :p10, :p3, :p4, :p9, :p6] p8 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p8 - p10 is leader p4 - p10 is leader p9 - p10 is leader p10 - p10 is leader p3 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p8 - prepare from p10 p6 - prepare from p10 p4 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p6 - p10 is leader p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 208} p10 - accept 1 1 {:val, 208} p10 accepted 1 1 p3 - accept 1 1 {:val, 208} p10 accepted 1 1 p8 - accept 1 1 {:val, 208} p10 accepted 1 1 p9 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 accepted 1 1 p6 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 decided 1 {:val, 208} p8 decided 1 {:val, 208} p6 decided 1 {:val, 208} p3 decided 1 {:val, 208} p4 decided 1 {:val, 208} p9 decided 1 {:val, 208} p9: decided {:val, 208} p4: decided {:val, 208} p6: decided {:val, 208} p3: decided {:val, 208} p8: decided {:val, 208} p10: decided {:val, 208} p4: {:message_queue_len, 0} p10: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p10 Starting paxos for p4 Starting paxos for p1 Starting paxos for p9 Starting paxos for p3 Starting paxos for p8 Starting paxos for p2 Starting paxos for p11 :p6: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] :p7: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] :p11: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] :p1: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] :p2: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] :p3: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] p2 - Propose 1 with action nil p1 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil :p5: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] :p9: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] :p10: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] p11 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p4: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] p3 SET BALLOT VALUE 3 nil :p8: started with [:p5, :p2, :p7, :p10, :p8, :p1, :p11, :p6, :p4, :p3, :p9] p5 - p1 is leader p4 - p1 is leader p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p11 - prepare from p1 p4 - prepare from p1 p9 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p9 - p1 is leader p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p6 - accept 1 1 {:val, 206} p11 - accept 1 1 {:val, 206} p9 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 accepted 1 1 p3 - p1 is leader p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p4 decided 1 {:val, 206} p6 decided 1 {:val, 206} p11 decided 1 {:val, 206} p9 decided 1 {:val, 206} p3 decided 1 {:val, 206} p1 decided 1 {:val, 206} p1: decided {:val, 206} p6: decided {:val, 206} p11: decided {:val, 206} p3: decided {:val, 206} p9: decided {:val, 206} p4: decided {:val, 206} p11 - p1 is leader p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p1 Starting paxos for p6 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 Starting paxos for p7 Starting paxos for p4 Starting paxos for p10 Starting paxos for p8 Starting paxos for p9 Starting paxos for p11 :p6: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] :p10: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] :p8: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] :p5: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] :p1: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] :p7: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] p5 - Propose 1 with action nil :p9: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] :p4: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] p5 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p3: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p11: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] p11 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil :p2: started with [:p5, :p1, :p6, :p8, :p7, :p3, :p11, :p4, :p2, :p10, :p9] p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p3 - prepare from p1 p9 - prepare from p1 p10 - prepare from p1 p4 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p3 - accept 1 1 {:val, 206} p5 - accept 1 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p1 - prepared 1 1 nil nil p10 - accept 1 1 {:val, 206} p11 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p9 - accept 1 1 {:val, 206} p1 Try to run prepared p1 11 8 true p2 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 206} p11 decided 1 {:val, 206} p10 decided 1 {:val, 206} p9 decided 1 {:val, 206} p4 decided 1 {:val, 206} p2 decided 1 {:val, 206} p3 decided 1 {:val, 206} p1 accepted 1 1 p1 decided 1 {:val, 206} p2 - p1 is leader p4 - p1 is leader p10 - p1 is leader p3 - p1 is leader p9 - p1 is leader p3: decided {:val, 206} p11 - p1 is leader p10: decided {:val, 206} p9: decided {:val, 206} p4: decided {:val, 206} p11: decided {:val, 206} p2: decided {:val, 206} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p4 Starting paxos for p8 Starting paxos for p10 Starting paxos for p9 Starting paxos for p6 Starting paxos for p1 Starting paxos for p3 Starting paxos for p7 Starting paxos for p5 Starting paxos for p2 Starting paxos for p11 :p5: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] :p6: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p1: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p7: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p4: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] :p10: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] p1 SET BALLOT VALUE 3 nil :p3: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] p2 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil :p11: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] p4 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p8: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] :p2: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] :p9: started with [:p10, :p6, :p9, :p7, :p1, :p4, :p11, :p2, :p5, :p8, :p3] p8 - p10 is leader p4 - p10 is leader p5 - p10 is leader p2 - p10 is leader p3 - p10 is leader p11 - p10 is leader p8 - p11 is leader p4 - p11 is leader p5 - p11 is leader p2 - p11 is leader p3 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p2 - prepare from p11 p4 - prepare from p11 p5 - prepare from p11 p3 - prepare from p11 p8 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p4 - accept 1 1 {:val, 201} p11 SET BALLOT VALUE {:val, 201} p3 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p2 - accept 1 1 {:val, 201} p11 accepted 1 1 p8 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 decided 1 {:val, 201} p3 decided 1 {:val, 201} p2 decided 1 {:val, 201} p4 decided 1 {:val, 201} p5 decided 1 {:val, 201} p8 decided 1 {:val, 201} p4: decided {:val, 201} p5: decided {:val, 201} p3: decided {:val, 201} p11: decided {:val, 201} p8: decided {:val, 201} p2: decided {:val, 201} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p10 Starting paxos for p6 Starting paxos for p9 Starting paxos for p2 Starting paxos for p5 Starting paxos for p3 Starting paxos for p4 Starting paxos for p7 Starting paxos for p1 Starting paxos for p8 Starting paxos for p11 :p5: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p10: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p1: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p3: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p6: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p7: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p2: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p4: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p11: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] :p8: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] p4 - Propose 1 with action nil p2 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil :p9: started with [:p4, :p9, :p11, :p10, :p3, :p2, :p8, :p6, :p7, :p1, :p5] p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p6 - p1 is leader p9 - p1 is leader p7 - p1 is leader p5 - p1 is leader p2 - p1 is leader p1 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p2 - prepare from p1 p6 - prepare from p1 p8 - prepare from p1 p5 - prepare from p1 p7 - prepare from p1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p8 - accept 1 1 {:val, 208} p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 decided 1 {:val, 208} p2 decided 1 {:val, 208} p6 decided 1 {:val, 208} p7 decided 1 {:val, 208} p8 decided 1 {:val, 208} p5 decided 1 {:val, 208} p2: decided {:val, 208} p5: decided {:val, 208} p1: decided {:val, 208} p6: decided {:val, 208} p7: decided {:val, 208} p8: decided {:val, 208} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} p5: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p9 Starting paxos for p2 Starting paxos for p8 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 Starting paxos for p6 Starting paxos for p4 Starting paxos for p10 Starting paxos for p7 Starting paxos for p11 :p1: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] :p8: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] :p4: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] :p6: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] :p10: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p9: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] :p7: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] p11 SET BALLOT VALUE 3 nil :p5: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil :p11: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] p11 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p3: started with [:p11, :p3, :p9, :p1, :p4, :p6, :p7, :p2, :p10, :p5, :p8] p3 - Propose 1 with action nil p2 - p1 is leader p8 - p1 is leader p3 - p1 is leader p5 - p1 is leader p6 - p1 is leader p10 - p1 is leader p7 - p1 is leader p11 - p10 is leader p2 - p10 is leader p8 - p10 is leader p5 - p10 is leader p6 - p10 is leader p7 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p6 - prepare from p10 p7 - prepare from p10 p8 - prepare from p10 p2 - prepare from p10 p10 - prepare from p10 p5 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 210} p6 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p5 - accept 1 1 {:val, 210} p10 accepted 1 1 p7 - accept 1 1 {:val, 210} p10 accepted 1 1 p7 decided 1 {:val, 210} p6 decided 1 {:val, 210} p2 decided 1 {:val, 210} p10 decided 1 {:val, 210} p8 decided 1 {:val, 210} p5 decided 1 {:val, 210} p2: decided {:val, 210} p6: decided {:val, 210} p8: decided {:val, 210} p10: decided {:val, 210} p5: decided {:val, 210} p7: decided {:val, 210} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 Starting paxos for p10 Starting paxos for p8 Starting paxos for p9 Starting paxos for p6 Starting paxos for p2 Starting paxos for p7 Starting paxos for p11 :p11: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] :p5: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] :p8: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] :p3: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] :p10: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] :p6: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil :p2: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] :p7: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] :p4: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] p10 SET BALLOT VALUE 3 nil :p9: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil :p1: started with [:p2, :p4, :p11, :p5, :p7, :p6, :p10, :p8, :p9, :p3, :p1] p9 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p9 - prepare from p1 p8 - prepare from p1 p10 - prepare from p1 p1 - prepare from p1 p3 - p1 is leader p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p1 - accept 1 1 {:val, 202} p1 accepted 1 1 p10 - accept 1 1 {:val, 202} p10 - p1 is leader p1 accepted 1 1 p9 - accept 1 1 {:val, 202} p9 - p1 is leader p6 - accept 1 1 {:val, 202} p1 accepted 1 1 p3 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p8 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 decided 1 {:val, 202} p6 decided 1 {:val, 202} p9 decided 1 {:val, 202} p3 decided 1 {:val, 202} p8 decided 1 {:val, 202} p10 decided 1 {:val, 202} p6 - p1 is leader p8 - p1 is leader p6: decided {:val, 202} p3: decided {:val, 202} p8: decided {:val, 202} p10: decided {:val, 202} p9: decided {:val, 202} p1: decided {:val, 202} p10: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p8 Starting paxos for p4 Starting paxos for p5 Starting paxos for p3 Starting paxos for p10 Starting paxos for p7 Starting paxos for p2 Starting paxos for p9 Starting paxos for p1 Starting paxos for p6 Starting paxos for p11 :p11: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p8: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p10: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p4: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p2: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p7: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p3: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] p7 - Propose 1 with action nil :p9: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p6: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] :p1: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p5: started with [:p5, :p7, :p2, :p10, :p6, :p3, :p11, :p4, :p9, :p8, :p1] p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 - p1 is leader p4 - p1 is leader p3 - p1 is leader p7 - p1 is leader p9 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p11 - prepare from p1 p8 - prepare from p1 p3 - prepare from p1 p7 - prepare from p1 p4 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p11 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p8 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 210} p1 Try to run prepared p9 - accept 1 1 {:val, 210} p1 11 8 true p7 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 210} p11 decided 1 {:val, 210} p7 decided 1 {:val, 210} p5 decided 1 {:val, 210} p4 decided 1 {:val, 210} p9 decided 1 {:val, 210} p8 decided 1 {:val, 210} p1 accepted 1 1 p1 decided 1 {:val, 210} p3: decided {:val, 210} p11 - p1 is leader p11: decided {:val, 210} p8: decided {:val, 210} p4: decided {:val, 210} p9: decided {:val, 210} p1: decided {:val, 210} p8: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p9 Starting paxos for p1 Starting paxos for p6 Starting paxos for p7 Starting paxos for p2 Starting paxos for p5 Starting paxos for p4 Starting paxos for p8 Starting paxos for p10 Starting paxos for p3 Starting paxos for p11 :p9: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] :p1: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] :p10: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] p1 - Propose 1 with action nil :p4: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] p1 SET BALLOT VALUE 3 nil :p5: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] p9 - Propose 1 with action nil :p7: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] :p2: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] :p3: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] :p6: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil :p8: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p11: started with [:p1, :p9, :p4, :p11, :p8, :p7, :p3, :p6, :p5, :p10, :p2] p7 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p6 - p1 is leader p9 - p1 is leader p5 - p1 is leader p7 - p1 is leader p2 - p1 is leader p10 - p1 is leader p3 - p1 is leader p6 - p10 is leader p5 - p10 is leader p7 - p10 is leader p2 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p3 - prepare from p10 p7 - prepare from p10 p2 - prepare from p10 p5 - prepare from p10 p6 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p3 - p10 is leader p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 201} p10 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p5 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p10 accepted 1 1 p2 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 201} p7 decided 1 {:val, 201} p2 decided 1 {:val, 201} p6 decided 1 {:val, 201} p5 decided 1 {:val, 201} p3 decided 1 {:val, 201} p7: decided {:val, 201} p10: decided {:val, 201} p6: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p5: decided {:val, 201} p5: {:message_queue_len, 0} p10: {:message_queue_len, 0} p2: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p9 Starting paxos for p5 Starting paxos for p8 Starting paxos for p2 Starting paxos for p7 Starting paxos for p10 Starting paxos for p6 Starting paxos for p11 :p7: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p10: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p11: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p8: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p6: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p5: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p1: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p2: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p3: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] :p4: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] p5 - Propose 1 with action nil :p9: started with [:p5, :p3, :p1, :p9, :p6, :p4, :p2, :p11, :p8, :p7, :p10] p5 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p4 - p10 is leader p2 - p10 is leader p8 - p10 is leader p7 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p8 - prepare from p10 p7 - prepare from p10 p11 - prepare from p10 p4 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p4 - accept 1 1 {:val, 201} p7 - accept 1 1 {:val, 201} p10 SET BALLOT VALUE {:val, 201} p2 - accept 1 1 {:val, 201} p11 - accept 1 1 {:val, 201} p10 - accept 1 1 {:val, 201} p10 accepted 1 1 p8 - accept 1 1 {:val, 201} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p11 decided 1 {:val, 201} p2 decided 1 {:val, 201} p8 decided 1 {:val, 201} p10 decided 1 {:val, 201} p7 decided 1 {:val, 201} p4 decided 1 {:val, 201} p7: decided {:val, 201} p10: decided {:val, 201} p11: decided {:val, 201} p8: decided {:val, 201} p2: decided {:val, 201} p4: decided {:val, 201} p2: {:message_queue_len, 0} p7: {:message_queue_len, 0} p4: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p7 Starting paxos for p11 Starting paxos for p10 Starting paxos for p2 Starting paxos for p8 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 Starting paxos for p6 Starting paxos for p9 Starting paxos for p4 :p7: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p11: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p10: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p2: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p8: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p1: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p3: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p5: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p6: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p9: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] :p4: started with [:p7, :p11, :p10, :p2, :p8, :p3, :p1, :p5, :p6, :p9, :p4] p7 - Propose 1 with action nil p11 - Propose 1 with action nil p7 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p3 - p1 is leader p1 - p1 is leader p6 - p1 is leader p5 - p1 is leader p9 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p9 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p6 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p3 decided 1 {:val, 207} p9 decided 1 {:val, 207} p4 decided 1 {:val, 207} p5 decided 1 {:val, 207} p6 decided 1 {:val, 207} p1 decided 1 {:val, 207} p6: decided {:val, 207} p4: decided {:val, 207} p1: decided {:val, 207} p5: decided {:val, 207} p9: decided {:val, 207} p3: decided {:val, 207} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p8 Starting paxos for p11 Starting paxos for p4 Starting paxos for p1 Starting paxos for p9 Starting paxos for p2 Starting paxos for p5 Starting paxos for p7 Starting paxos for p6 Starting paxos for p10 Starting paxos for p3 :p8: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p11: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p4: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p1: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p9: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p5: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p2: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p7: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p6: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p10: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] :p3: started with [:p8, :p11, :p4, :p1, :p9, :p2, :p5, :p7, :p6, :p10, :p3] p8 - Propose 1 with action nil p11 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 - p10 is leader p7 - p10 is leader p5 - p10 is leader p6 - p10 is leader p3 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p5 - prepare from p10 p7 - prepare from p10 p6 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 208} p5 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p10 - accept 1 1 {:val, 208} p6 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p2 decided 1 {:val, 208} p5 decided 1 {:val, 208} p7 decided 1 {:val, 208} p10 decided 1 {:val, 208} p6 decided 1 {:val, 208} p3 decided 1 {:val, 208} p6: decided {:val, 208} p10: decided {:val, 208} p3: decided {:val, 208} p7: decided {:val, 208} p5: decided {:val, 208} p2: decided {:val, 208} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p11 Starting paxos for p7 Starting paxos for p10 Starting paxos for p6 Starting paxos for p8 Starting paxos for p5 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p9 :p11: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p5: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p7: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p1: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p10: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p2: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p6: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p8: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p4: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p3: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] :p9: started with [:p11, :p7, :p10, :p6, :p8, :p5, :p1, :p4, :p2, :p3, :p9] p11 - Propose 1 with action nil p7 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p5 - p1 is leader p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p3 - p1 is leader p2 - p1 is leader p9 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 206} p5 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p9 - accept 1 1 {:val, 206} p3 - accept 1 1 {:val, 206} p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 206} p1 decided 1 {:val, 206} p9 decided 1 {:val, 206} p4 decided 1 {:val, 206} p2 decided 1 {:val, 206} p3 decided 1 {:val, 206} p2: decided {:val, 206} p9: decided {:val, 206} p3: decided {:val, 206} p1: decided {:val, 206} p4: decided {:val, 206} p5: decided {:val, 206} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p4 Starting paxos for p3 Starting paxos for p6 Starting paxos for p2 Starting paxos for p10 Starting paxos for p7 Starting paxos for p8 Starting paxos for p5 Starting paxos for p11 Starting paxos for p9 Starting paxos for p1 :p4: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p2: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p10: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p3: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p6: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p9: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p7: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p1: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p8: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p5: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] :p11: started with [:p4, :p3, :p6, :p2, :p10, :p7, :p8, :p5, :p11, :p9, :p1] p4 - Propose 1 with action nil p3 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p5 - p1 is leader p8 - p1 is leader p7 - p1 is leader p9 - p1 is leader p1 - p1 is leader p11 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p8 - prepare from p1 p9 - prepare from p1 p7 - prepare from p1 p1 - prepare from p1 p11 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p7 - accept 1 1 {:val, 208} p1 - accept 1 1 {:val, 208} p11 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p1 accepted 1 1 p8 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p7 decided 1 {:val, 208} p1 decided 1 {:val, 208} p11 decided 1 {:val, 208} p5 decided 1 {:val, 208} p9 decided 1 {:val, 208} p8 decided 1 {:val, 208} p1: decided {:val, 208} p9: decided {:val, 208} p8: decided {:val, 208} p11: decided {:val, 208} p5: decided {:val, 208} p7: decided {:val, 208} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p8 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p6 Starting paxos for p10 Starting paxos for p5 Starting paxos for p11 Starting paxos for p9 Starting paxos for p4 Starting paxos for p7 :p8: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p2: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p3: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p1: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p6: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p10: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p11: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p5: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p9: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p7: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] :p4: started with [:p8, :p2, :p3, :p1, :p6, :p10, :p5, :p11, :p9, :p4, :p7] p8 - Propose 1 with action nil p2 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p5 - p10 is leader p11 - p10 is leader p10 - p10 is leader p9 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p4 - prepare from p10 p10 - prepare from p10 p5 - prepare from p10 p11 - prepare from p10 p9 - prepare from p10 p7 - prepare from p10 p4 - p10 is leader p10 - prepared 1 1 nil nil p7 - p10 is leader p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 209} p10 - accept 1 1 {:val, 209} p7 - accept 1 1 {:val, 209} p10 accepted 1 1 p10 accepted 1 1 p5 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p10 accepted 1 1 p9 - accept 1 1 {:val, 209} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 209} p5 decided 1 {:val, 209} p11 decided 1 {:val, 209} p9 decided 1 {:val, 209} p4 decided 1 {:val, 209} p7 decided 1 {:val, 209} p11: decided {:val, 209} p7: decided {:val, 209} p5: decided {:val, 209} p9: decided {:val, 209} p4: decided {:val, 209} p10: decided {:val, 209} p10: {:message_queue_len, 0} p7: {:message_queue_len, 0} p5: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p11 Starting paxos for p8 Starting paxos for p10 Starting paxos for p3 Starting paxos for p9 Starting paxos for p4 Starting paxos for p5 Starting paxos for p1 Starting paxos for p7 Starting paxos for p2 Starting paxos for p6 :p11: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p8: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p3: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p10: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p4: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p9: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p1: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p5: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p7: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p2: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] :p6: started with [:p11, :p8, :p10, :p3, :p9, :p4, :p5, :p1, :p7, :p2, :p6] p11 - Propose 1 with action nil p8 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p4 - p1 is leader p5 - p1 is leader p7 - p1 is leader p6 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p7 - prepare from p1 p6 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 204} p1 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p2 - accept 1 1 {:val, 204} p1 accepted 1 1 p4 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p6 - accept 1 1 {:val, 204} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 204} p5 decided 1 {:val, 204} p4 decided 1 {:val, 204} p7 decided 1 {:val, 204} p2 decided 1 {:val, 204} p6 decided 1 {:val, 204} p7: decided {:val, 204} p6: decided {:val, 204} p2: decided {:val, 204} p1: decided {:val, 204} p5: decided {:val, 204} p4: decided {:val, 204} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p6 Starting paxos for p8 Starting paxos for p11 Starting paxos for p10 Starting paxos for p1 Starting paxos for p4 Starting paxos for p3 Starting paxos for p9 Starting paxos for p7 Starting paxos for p2 Starting paxos for p5 :p7: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p6: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p8: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p11: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p10: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p1: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p4: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p9: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p3: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p2: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] :p5: started with [:p6, :p8, :p11, :p10, :p1, :p4, :p3, :p9, :p7, :p2, :p5] p6 - Propose 1 with action nil p8 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p3 - p2 is leader p4 - p2 is leader p9 - p2 is leader p2 - p2 is leader p7 - p2 is leader p5 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p7 - prepare from p2 p2 - prepare from p2 p5 - prepare from p2 p4 - prepare from p2 p9 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 4 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 5 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 6 false p2 SET BALLOT VALUE {:val, 204} p2 - accept 1 1 {:val, 204} p4 - accept 1 1 {:val, 204} p3 - accept 1 1 {:val, 204} p9 - accept 1 1 {:val, 204} p7 - accept 1 1 {:val, 204} p5 - accept 1 1 {:val, 204} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 decided 1 {:val, 204} p4 decided 1 {:val, 204} p3 decided 1 {:val, 204} p9 decided 1 {:val, 204} p7 decided 1 {:val, 204} p5 decided 1 {:val, 204} p5: decided {:val, 204} p7: decided {:val, 204} p9: decided {:val, 204} p3: decided {:val, 204} p2: decided {:val, 204} p4: decided {:val, 204} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 204, val: 204, val: 204, val: 204, val: 204, val: 204] Starting paxos for p2 Starting paxos for p6 Starting paxos for p1 Starting paxos for p8 Starting paxos for p5 Starting paxos for p7 Starting paxos for p11 Starting paxos for p3 Starting paxos for p10 Starting paxos for p9 Starting paxos for p4 :p2: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p8: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p6: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p7: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p1: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p5: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p10: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p11: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p3: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p9: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] :p4: started with [:p2, :p6, :p1, :p8, :p5, :p7, :p11, :p3, :p10, :p9, :p4] p2 - Propose 1 with action nil p6 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil p11 - p10 is leader p7 - p10 is leader p3 - p10 is leader p4 - p10 is leader p9 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p9 - prepare from p10 p7 - prepare from p10 p4 - prepare from p10 p11 - prepare from p10 p10 - prepare from p10 p3 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 208} p3 - accept 1 1 {:val, 208} p11 - accept 1 1 {:val, 208} p10 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p9 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p11 decided 1 {:val, 208} p3 decided 1 {:val, 208} p7 decided 1 {:val, 208} p10 decided 1 {:val, 208} p9 decided 1 {:val, 208} p4 decided 1 {:val, 208} p11: decided {:val, 208} p4: decided {:val, 208} p3: decided {:val, 208} p9: decided {:val, 208} p10: decided {:val, 208} p7: decided {:val, 208} p10: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p3 Starting paxos for p11 Starting paxos for p9 Starting paxos for p10 Starting paxos for p8 Starting paxos for p1 Starting paxos for p5 Starting paxos for p7 Starting paxos for p4 Starting paxos for p2 Starting paxos for p6 :p3: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p9: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p11: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p1: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p10: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p8: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p6: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p5: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p7: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p4: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] :p2: started with [:p3, :p11, :p9, :p10, :p8, :p1, :p5, :p7, :p4, :p2, :p6] p3 - Propose 1 with action nil p11 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p7 - prepare from p1 p6 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p6 - p1 is leader p7 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p7 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p1 decided 1 {:val, 210} p5 decided 1 {:val, 210} p7 decided 1 {:val, 210} p6 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5: decided {:val, 210} p6: decided {:val, 210} p7: decided {:val, 210} p2: decided {:val, 210} p4: decided {:val, 210} p1: decided {:val, 210} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p8 Starting paxos for p2 Starting paxos for p7 Starting paxos for p9 Starting paxos for p11 Starting paxos for p4 Starting paxos for p10 Starting paxos for p1 Starting paxos for p5 Starting paxos for p6 :p3: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p11: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p2: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p8: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p7: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p9: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p4: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p1: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p10: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p5: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] :p6: started with [:p3, :p8, :p2, :p7, :p9, :p11, :p4, :p10, :p1, :p5, :p6] p3 - Propose 1 with action nil p8 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p5 - p1 is leader p11 - p1 is leader p1 - p1 is leader p10 - p1 is leader p4 - p1 is leader p6 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p10 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p6 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 202} p10 - accept 1 1 {:val, 202} p4 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p1 - accept 1 1 {:val, 202} p6 - accept 1 1 {:val, 202} p11 - accept 1 1 {:val, 202} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p11 decided 1 {:val, 202} p5 decided 1 {:val, 202} p4 decided 1 {:val, 202} p6 decided 1 {:val, 202} p10 decided 1 {:val, 202} p1 decided 1 {:val, 202} p5: decided {:val, 202} p4: decided {:val, 202} p10: decided {:val, 202} p1: decided {:val, 202} p6: decided {:val, 202} p11: decided {:val, 202} p4: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p6 Starting paxos for p5 Starting paxos for p8 Starting paxos for p9 Starting paxos for p4 Starting paxos for p10 Starting paxos for p1 Starting paxos for p2 Starting paxos for p7 Starting paxos for p3 Starting paxos for p11 :p5: started :p11: started spare = [:p3, :p4, :p1, :p2, :p9, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] :p6: started p5 - Propose 1 with action nil p5 SET BALLOT VALUE 3 nil spare = [:p3, :p4, :p1, :p2, :p9, :p8] spare = [:p3, :p4, :p1, :p2, :p9, :p8] p2 SET BALLOT VALUE 3 nil :p2: started kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] spare = [:p3, :p4, :p1, :p2, :p9, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p4: started :p1: started p11 SET BALLOT VALUE 3 nil :p3: started p8 SET BALLOT VALUE 3 nil :p8: started spare = [:p3, :p4, :p1, :p2, :p9, :p8] p10 SET BALLOT VALUE 3 nil spare = [:p3, :p4, :p1, :p2, :p9, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] :p10: started kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] p7 SET BALLOT VALUE 3 nil spare = [:p3, :p4, :p1, :p2, :p9, :p8] spare = [:p3, :p4, :p1, :p2, :p9, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] spare = [:p3, :p4, :p1, :p2, :p9, :p8] p9 SET BALLOT VALUE 3 nil :p7: started kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] :p9: started p8 - Propose 1 with action nil p3 - Propose 1 with action nil spare = [:p3, :p4, :p1, :p2, :p9, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] p7 - Propose 1 with action nil spare = [:p3, :p4, :p1, :p2, :p9, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p11, :p10] p5 - p1 is leader p2 - p1 is leader p4 - p1 is leader p9 - p1 is leader p8 - p1 is leader p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p8 - prepare from p1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p7 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 7 true p1 - prepared 1 1 nil nil p1 Try to run prepared p7 - accept 1 1 {:val, 207} p1 11 8 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p5 - accept 1 1 {:val, 207} p1 accepted 1 1 p8 - accept 1 1 {:val, 207} p1 accepted 1 1 p3 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p9 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p7 decided 1 {:val, 207} p9 decided 1 {:val, 207} p3 decided 1 {:val, 207} p8 decided 1 {:val, 207} p1 decided 1 {:val, 207} p4 decided 1 {:val, 207} p2 - accept 1 1 {:val, 207} p8 - Propose 1 with action nil p2 decided 1 {:val, 207} p1 accepted 1 1 p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 207} p8: decided {:val, 207} p3: decided {:val, 207} p2: decided {:val, 207} p4: decided {:val, 207} p1: decided {:val, 207} p9: decided {:val, 207} p8: {:message_queue_len, 0} p9: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p9 Starting paxos for p1 Starting paxos for p2 Starting paxos for p6 Starting paxos for p8 Starting paxos for p5 Starting paxos for p4 Starting paxos for p3 Starting paxos for p10 Starting paxos for p7 Starting paxos for p11 :p5: started :p9: started spare = [:p3, :p1, :p11, :p5, :p10, :p7] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] spare = [:p3, :p1, :p11, :p5, :p10, :p7] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] :p8: started :p10: started :p11: started :p2: started :p6: started :p7: started :p1: started :p4: started spare = [:p3, :p1, :p11, :p5, :p10, :p7] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] spare = [:p3, :p1, :p11, :p5, :p10, :p7] spare = [:p3, :p1, :p11, :p5, :p10, :p7] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] spare = [:p3, :p1, :p11, :p5, :p10, :p7] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] spare = [:p3, :p1, :p11, :p5, :p10, :p7] spare = [:p3, :p1, :p11, :p5, :p10, :p7] spare = [:p3, :p1, :p11, :p5, :p10, :p7] :p3: started spare = [:p3, :p1, :p11, :p5, :p10, :p7] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] p7 - Propose 1 with action nil kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] p5 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil spare = [:p3, :p1, :p11, :p5, :p10, :p7] kill: leaders, followers = [:p2, :p6], [:p9, :p4, :p8] p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p11 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p6 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p2 - p1 is leader p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p11 - prepare from p1 p5 - prepare from p1 p7 - prepare from p1 p2 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p5 - p1 is leader p10 - p1 is leader p7 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p7 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p6 - accept 1 1 {:val, 206} p1 SET BALLOT VALUE {:val, 206} p3 - accept 1 1 {:val, 206} p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - p1 is leader p10 - accept 1 1 {:val, 206} p1 11 7 true p5 - accept 1 1 {:val, 206} p1 - prepared 1 1 nil nil p11 - accept 1 1 {:val, 206} p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 206} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 206} p7 decided 1 {:val, 206} p1 decided 1 {:val, 206} p5 decided 1 {:val, 206} p10 decided 1 {:val, 206} p11 decided 1 {:val, 206} p6 decided 1 {:val, 206} p3 decided 1 {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p7 - Propose 1 with action nil p7 - Has already decided for 1 sending {:val, 206} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 206} p7: decided {:val, 206} p3: decided {:val, 206} p11 - p1 is leader p5: decided {:val, 206} p1: decided {:val, 206} p11: decided {:val, 206} p10: decided {:val, 206} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p1: {:message_queue_len, 0} p10: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p4 Starting paxos for p10 Starting paxos for p7 Starting paxos for p8 Starting paxos for p6 Starting paxos for p5 Starting paxos for p9 Starting paxos for p1 Starting paxos for p2 Starting paxos for p3 Starting paxos for p11 :p4: started :p8: started :p5: started spare = [:p3, :p4, :p9, :p10, :p2, :p5] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] spare = [:p3, :p4, :p9, :p10, :p2, :p5] spare = [:p3, :p4, :p9, :p10, :p2, :p5] :p2: started kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] :p7: started :p3: started p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil spare = [:p3, :p4, :p9, :p10, :p2, :p5] :p9: started :p11: started kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] p5 - Propose 1 with action nil :p10: started p5 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil :p6: started p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil spare = [:p3, :p4, :p9, :p10, :p2, :p5] spare = [:p3, :p4, :p9, :p10, :p2, :p5] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] spare = [:p3, :p4, :p9, :p10, :p2, :p5] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil :p1: started p1 SET BALLOT VALUE 3 nil spare = [:p3, :p4, :p9, :p10, :p2, :p5] p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] p9 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil p3 - Propose 1 with action nil spare = [:p3, :p4, :p9, :p10, :p2, :p5] spare = [:p3, :p4, :p9, :p10, :p2, :p5] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] spare = [:p3, :p4, :p9, :p10, :p2, :p5] kill: leaders, followers = [:p8, :p6], [:p11, :p1, :p7] p10 - p1 is leader p4 - p1 is leader p5 - p1 is leader p9 - p10 is leader p2 - p10 is leader p3 - p10 is leader p10 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p5 - prepare from p10 p2 - prepare from p10 p4 - prepare from p10 p3 - prepare from p10 p9 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 206} p5 - accept 1 1 {:val, 206} p10 - accept 1 1 {:val, 206} p2 - accept 1 1 {:val, 206} p10 accepted 1 1 p3 - accept 1 1 {:val, 206} p10 accepted 1 1 p4 - accept 1 1 {:val, 206} p10 accepted 1 1 p4 - p10 is leader p10 accepted 1 1 p10 accepted 1 1 p9 - accept 1 1 {:val, 206} p10 accepted 1 1 p10 decided 1 {:val, 206} p3 decided 1 {:val, 206} p2 decided 1 {:val, 206} p4 decided 1 {:val, 206} p5 decided 1 {:val, 206} p9 decided 1 {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p3 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - p10 is leader p3: decided {:val, 206} p5: decided {:val, 206} p2: decided {:val, 206} p4: decided {:val, 206} p10: decided {:val, 206} p9: decided {:val, 206} p3: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p2 Starting paxos for p4 Starting paxos for p10 Starting paxos for p1 Starting paxos for p9 Starting paxos for p8 Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p11 :p7: started :p8: started :p11: started :p1: started :p6: started :p5: started :p3: started :p4: started :p9: started spare = [:p4, :p11, :p6, :p8, :p3, :p9] spare = [:p4, :p11, :p6, :p8, :p3, :p9] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] spare = [:p4, :p11, :p6, :p8, :p3, :p9] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] spare = [:p4, :p11, :p6, :p8, :p3, :p9] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] :p2: started spare = [:p4, :p11, :p6, :p8, :p3, :p9] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] :p10: started spare = [:p4, :p11, :p6, :p8, :p3, :p9] spare = [:p4, :p11, :p6, :p8, :p3, :p9] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] spare = [:p4, :p11, :p6, :p8, :p3, :p9] p1 - Propose 1 with action nil spare = [:p4, :p11, :p6, :p8, :p3, :p9] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] p1 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] spare = [:p4, :p11, :p6, :p8, :p3, :p9] spare = [:p4, :p11, :p6, :p8, :p3, :p9] kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] p10 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil kill: leaders, followers = [:p1, :p10], [:p2, :p7, :p5] p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 - Propose 1 with action nil p9 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p4 - p1 is leader p9 - p1 is leader p8 - p1 is leader p6 - p1 is leader p3 - p1 is leader p11 - p1 is leader p4 - p11 is leader p9 - p11 is leader p8 - p11 is leader p6 - p11 is leader p3 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p3 - prepare from p11 p11 - prepare from p11 p8 - prepare from p11 p6 - prepare from p11 p9 - prepare from p11 p4 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p4 - accept 1 1 {:val, 210} p11 SET BALLOT VALUE {:val, 210} p9 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p8 - accept 1 1 {:val, 210} p11 accepted 1 1 p3 - accept 1 1 {:val, 210} p11 accepted 1 1 p6 - accept 1 1 {:val, 210} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p4 decided 1 {:val, 210} p8 decided 1 {:val, 210} p6 decided 1 {:val, 210} p11 decided 1 {:val, 210} p3 decided 1 {:val, 210} p9 decided 1 {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 210} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 210} p8: decided {:val, 210} p11: decided {:val, 210} p3: decided {:val, 210} p6: decided {:val, 210} p9: decided {:val, 210} p4: decided {:val, 210} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p5 Starting paxos for p10 Starting paxos for p9 Starting paxos for p6 Starting paxos for p2 Starting paxos for p8 Starting paxos for p3 Starting paxos for p1 Starting paxos for p7 Starting paxos for p11 :p10: started :p2: started :p7: started spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] :p1: started :p6: started spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] :p4: started :p11: started :p5: started :p9: started spare = [:p1, :p3, :p8, :p7, :p5, :p6] :p3: started p1 - Propose 1 with action nil kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil spare = [:p1, :p3, :p8, :p7, :p5, :p6] spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] p9 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] p5 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p6 - Propose 1 with action nil :p8: started p4 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] spare = [:p1, :p3, :p8, :p7, :p5, :p6] kill: leaders, followers = [:p4, :p9], [:p10, :p11, :p2] p5 - p1 is leader p6 - p1 is leader p8 - p1 is leader p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p7 - prepare from p1 p8 - prepare from p1 p6 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - p1 is leader p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 207} p7 - accept 1 1 {:val, 207} p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p6 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 accepted 1 1 p8 - accept 1 1 {:val, 207} p3 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 207} p8 decided 1 {:val, 207} p6 decided 1 {:val, 207} p3 decided 1 {:val, 207} p7 decided 1 {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p7: decided {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p1 decided 1 {:val, 207} p6 - Propose 1 with action nil p1 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p1 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 207} p1: decided {:val, 207} p6: decided {:val, 207} p5: decided {:val, 207} p3: decided {:val, 207} p8: decided {:val, 207} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p8 Starting paxos for p3 Starting paxos for p9 Starting paxos for p6 Starting paxos for p7 Starting paxos for p10 Starting paxos for p2 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 Starting paxos for p11 :p11: started spare = [:p4, :p2, :p5, :p10, :p7, :p3] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] :p4: started :p5: started :p3: started :p7: started :p10: started :p9: started :p8: started :p6: started spare = [:p4, :p2, :p5, :p10, :p7, :p3] :p2: started kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] spare = [:p4, :p2, :p5, :p10, :p7, :p3] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] spare = [:p4, :p2, :p5, :p10, :p7, :p3] spare = [:p4, :p2, :p5, :p10, :p7, :p3] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] spare = [:p4, :p2, :p5, :p10, :p7, :p3] spare = [:p4, :p2, :p5, :p10, :p7, :p3] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] p4 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil spare = [:p4, :p2, :p5, :p10, :p7, :p3] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] :p1: started p3 - Propose 1 with action nil spare = [:p4, :p2, :p5, :p10, :p7, :p3] p3 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil spare = [:p4, :p2, :p5, :p10, :p7, :p3] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil spare = [:p4, :p2, :p5, :p10, :p7, :p3] kill: leaders, followers = [:p1, :p6], [:p8, :p9, :p11] p6 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 - p1 is leader p6 - p1 is leader p7 - p1 is leader p4 - p1 is leader p10 - p1 is leader p2 - p1 is leader p1 - p1 is leader p5 - p1 is leader p5 - p10 is leader p3 - p10 is leader p7 - p10 is leader p4 - p10 is leader p10 - p10 is leader p2 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p3 - prepare from p10 p5 - prepare from p10 p7 - prepare from p10 p4 - prepare from p10 p10 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 202} p10 - accept 1 1 {:val, 202} p7 - accept 1 1 {:val, 202} p10 accepted 1 1 p10 accepted 1 1 p3 - accept 1 1 {:val, 202} p4 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p10 accepted 1 1 p2 - accept 1 1 {:val, 202} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 decided 1 {:val, 202} p5 decided 1 {:val, 202} p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p4 decided 1 {:val, 202} p7 decided 1 {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 202} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 202} p5: decided {:val, 202} p7: decided {:val, 202} p10: decided {:val, 202} p2: decided {:val, 202} p3: decided {:val, 202} p4: decided {:val, 202} p7: {:message_queue_len, 0} p10: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p8 Starting paxos for p3 Starting paxos for p9 Starting paxos for p10 Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p11 :p7: started :p5: started :p11: started spare = [:p3, :p2, :p10, :p1, :p4, :p5] :p2: started kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] :p9: started :p10: started :p3: started p5 - Propose 1 with action nil :p4: started :p8: started spare = [:p3, :p2, :p10, :p1, :p4, :p5] p5 SET BALLOT VALUE 3 nil spare = [:p3, :p2, :p10, :p1, :p4, :p5] spare = [:p3, :p2, :p10, :p1, :p4, :p5] kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] spare = [:p3, :p2, :p10, :p1, :p4, :p5] :p1: started p8 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] :p6: started spare = [:p3, :p2, :p10, :p1, :p4, :p5] p11 SET BALLOT VALUE 3 nil spare = [:p3, :p2, :p10, :p1, :p4, :p5] p7 - Propose 1 with action nil kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] p7 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] spare = [:p3, :p2, :p10, :p1, :p4, :p5] kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] p6 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p3 - Propose 1 with action nil p9 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil spare = [:p3, :p2, :p10, :p1, :p4, :p5] p10 SET BALLOT VALUE 3 nil spare = [:p3, :p2, :p10, :p1, :p4, :p5] kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] spare = [:p3, :p2, :p10, :p1, :p4, :p5] p2 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p9, :p7], [:p6, :p8, :p11] p5 - p1 is leader p7 - p1 is leader p3 - p1 is leader p9 - p1 is leader p10 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p7 - prepare from p1 p3 - prepare from p1 p10 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p9 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p7 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 210} p1 Try to run prepared p10 - accept 1 1 {:val, 210} p1 11 7 true p3 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 210} p10 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p2 decided 1 {:val, 210} p7 decided 1 {:val, 210} p1 accepted 1 1 p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p1 decided 1 {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 210} p3 - Propose 1 with action nil p3 - Has already decided for 1 sending {:val, 210} p5: decided {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p4: decided {:val, 210} p10: decided {:val, 210} p1: decided {:val, 210} p3: {:message_queue_len, 0} p10: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p8 Starting paxos for p5 Starting paxos for p4 Starting paxos for p6 Starting paxos for p7 Starting paxos for p3 Starting paxos for p10 Starting paxos for p1 Starting paxos for p9 Starting paxos for p2 Starting paxos for p11 :p1: started :p4: started spare = [:p4, :p5, :p10, :p2, :p9, :p1] kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] spare = [:p4, :p5, :p10, :p2, :p9, :p1] kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] :p7: started :p11: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil :p10: started p4 - Propose 1 with action nil spare = [:p4, :p5, :p10, :p2, :p9, :p1] p4 SET BALLOT VALUE 3 nil :p5: started :p9: started p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil spare = [:p4, :p5, :p10, :p2, :p9, :p1] spare = [:p4, :p5, :p10, :p2, :p9, :p1] kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] :p6: started kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] p11 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] p7 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil spare = [:p4, :p5, :p10, :p2, :p9, :p1] spare = [:p4, :p5, :p10, :p2, :p9, :p1] :p8: started kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] p8 SET BALLOT VALUE 3 nil kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] spare = [:p4, :p5, :p10, :p2, :p9, :p1] p7 - Propose 1 with action nil kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] p3 SET BALLOT VALUE 3 nil spare = [:p4, :p5, :p10, :p2, :p9, :p1] kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] p2 SET BALLOT VALUE 3 nil :p3: started :p2: started spare = [:p4, :p5, :p10, :p2, :p9, :p1] spare = [:p4, :p5, :p10, :p2, :p9, :p1] kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] kill: leaders, followers = [:p11, :p7], [:p3, :p6, :p8] p5 - p1 is leader p4 - p1 is leader p7 - p1 is leader p10 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p9 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p11 - prepare from p1 p7 - prepare from p1 p2 - p1 is leader p1 - prepare from p1 p10 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p11 - accept 1 1 {:val, 207} p4 - accept 1 1 {:val, 207} p7 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p9 - accept 1 1 {:val, 207} p1 11 7 true p2 - accept 1 1 {:val, 207} p10 - accept 1 1 {:val, 207} p5 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 8 true p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 207} p11 decided 1 {:val, 207} p10 decided 1 {:val, 207} p4 decided 1 {:val, 207} p7 decided 1 {:val, 207} p5 decided 1 {:val, 207} p9 decided 1 {:val, 207} p1 accepted 1 1 p1 decided 1 {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 207} p9: decided {:val, 207} p10: decided {:val, 207} p5: decided {:val, 207} p2: decided {:val, 207} p1: decided {:val, 207} p4: decided {:val, 207} p9: {:message_queue_len, 0} p2: {:message_queue_len, 0} p10: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p6 Starting paxos for p7 Starting paxos for p1 Starting paxos for p9 Starting paxos for p2 Starting paxos for p3 Starting paxos for p8 Starting paxos for p10 Starting paxos for p5 Starting paxos for p4 Starting paxos for p11 :p10: started :p8: started :p3: started :p1: started :p11: started :p9: started :p5: started :p6: started :p2: started spare = [:p1, :p11, :p9, :p2, :p10, :p8] :p7: started kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] spare = [:p1, :p11, :p9, :p2, :p10, :p8] spare = [:p1, :p11, :p9, :p2, :p10, :p8] spare = [:p1, :p11, :p9, :p2, :p10, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] spare = [:p1, :p11, :p9, :p2, :p10, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] spare = [:p1, :p11, :p9, :p2, :p10, :p8] spare = [:p1, :p11, :p9, :p2, :p10, :p8] spare = [:p1, :p11, :p9, :p2, :p10, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] spare = [:p1, :p11, :p9, :p2, :p10, :p8] spare = [:p1, :p11, :p9, :p2, :p10, :p8] p5 - Propose 1 with action nil kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] p5 SET BALLOT VALUE 3 nil p7 - Propose 1 with action nil :p4: started p1 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil spare = [:p1, :p11, :p9, :p2, :p10, :p8] kill: leaders, followers = [:p5, :p7], [:p6, :p4, :p3] p7 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p10 - prepare from p1 p11 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p9 - p1 is leader p8 - p1 is leader p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p2 - p1 is leader p7 - accept 1 1 {:val, 207} p1 SET BALLOT VALUE {:val, 207} p9 - accept 1 1 {:val, 207} p1 - prepared 1 1 nil nil p1 Try to run prepared p11 - accept 1 1 {:val, 207} p1 11 7 true p1 - prepared 1 1 nil nil p10 - accept 1 1 {:val, 207} p1 Try to run prepared p8 - accept 1 1 {:val, 207} p1 11 8 true p10 - p1 is leader p1 - accept 1 1 {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 - accept 1 1 {:val, 207} p1 decided 1 {:val, 207} p11 decided 1 {:val, 207} p10 decided 1 {:val, 207} p8 decided 1 {:val, 207} p7 decided 1 {:val, 207} p5 - p1 is leader p9 decided 1 {:val, 207} p5 decided 1 {:val, 207} p2 - accept 1 1 {:val, 207} p2 decided 1 {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p1 accepted 1 1 p1 accepted 1 1 p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 207} p1: decided {:val, 207} p8: decided {:val, 207} p11 - p1 is leader p9: decided {:val, 207} p10: decided {:val, 207} p2: decided {:val, 207} p11: decided {:val, 207} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p1: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 207, val: 207, val: 207, val: 207, val: 207, val: 207] Starting paxos for p8 Starting paxos for p10 Starting paxos for p2 Starting paxos for p7 Starting paxos for p3 Starting paxos for p9 Starting paxos for p6 Starting paxos for p4 Starting paxos for p1 Starting paxos for p5 Starting paxos for p11 :p1: started :p7: started spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] :p6: started :p10: started :p5: started spare = [:p11, :p9, :p3, :p7, :p8, :p6] :p3: started kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] spare = [:p11, :p9, :p3, :p7, :p8, :p6] spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] p6 - Propose 1 with action nil :p9: started kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] p6 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil spare = [:p11, :p9, :p3, :p7, :p8, :p6] p8 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil :p2: started p7 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil :p8: started p11 SET BALLOT VALUE 3 nil spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p11: started spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] :p4: started spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] spare = [:p11, :p9, :p3, :p7, :p8, :p6] kill: leaders, followers = [:p10, :p4], [:p2, :p5, :p1] p4 - Propose 1 with action nil p11 - Propose 1 with action nil p8 - p1 is leader p7 - p1 is leader p10 - p1 is leader p3 - p1 is leader p6 - p1 is leader p9 - p1 is leader p4 - p1 is leader p11 - p1 is leader p8 - p10 is leader p7 - p10 is leader p3 - p10 is leader p6 - p10 is leader p9 - p10 is leader p11 - p10 is leader p8 - p11 is leader p7 - p11 is leader p3 - p11 is leader p6 - p11 is leader p9 - p11 is leader p11 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p9 - prepare from p11 p3 - prepare from p11 p7 - prepare from p11 p6 - prepare from p11 p11 - prepare from p11 p8 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 202} p11 - accept 1 1 {:val, 202} p11 accepted 1 1 p6 - accept 1 1 {:val, 202} p11 accepted 1 1 p3 - accept 1 1 {:val, 202} p9 - accept 1 1 {:val, 202} p11 accepted 1 1 p7 - accept 1 1 {:val, 202} p11 accepted 1 1 p8 - accept 1 1 {:val, 202} p11 accepted 1 1 p11 accepted 1 1 p11 decided 1 {:val, 202} p3 decided 1 {:val, 202} p6 decided 1 {:val, 202} p8 decided 1 {:val, 202} p9 decided 1 {:val, 202} p7 decided 1 {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 202} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 202} p6: decided {:val, 202} p11: decided {:val, 202} p7: decided {:val, 202} p9: decided {:val, 202} p3: decided {:val, 202} p8: decided {:val, 202} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p3: {:message_queue_len, 0} p7: {:message_queue_len, 0} p8: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p1 Starting paxos for p7 Starting paxos for p3 Starting paxos for p10 Starting paxos for p8 Starting paxos for p6 Starting paxos for p2 Starting paxos for p11 Starting paxos for p4 Starting paxos for p9 Starting paxos for p5 :p1: started :p7: started :p3: started :p10: started :p8: started :p6: started :p2: started :p11: started :p4: started :p9: started :p5: started spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] spare = [:p6, :p2, :p11, :p4, :p9, :p5] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] kill: leaders, followers = [:p1, :p7], [:p3, :p10, :p8] p1 - Propose 1 with action nil p7 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p6 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p6 - p1 is leader p11 - p1 is leader p5 - p1 is leader p2 - p1 is leader p4 - p1 is leader p9 - p1 is leader p6 - p11 is leader p9 - p11 is leader p2 - p11 is leader p11 - p11 is leader p5 - p11 is leader p4 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p9 - prepare from p11 p6 - prepare from p11 p2 - prepare from p11 p4 - prepare from p11 p5 - prepare from p11 p11 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 206} p6 - accept 1 1 {:val, 206} p9 - accept 1 1 {:val, 206} p11 accepted 1 1 p11 accepted 1 1 p2 - accept 1 1 {:val, 206} p11 accepted 1 1 p5 - accept 1 1 {:val, 206} p4 - accept 1 1 {:val, 206} p11 - accept 1 1 {:val, 206} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p4 decided 1 {:val, 206} p9 decided 1 {:val, 206} p11 decided 1 {:val, 206} p2 decided 1 {:val, 206} p6 decided 1 {:val, 206} p5 decided 1 {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 206} p6 - Propose 1 with action nil p6 - Has already decided for 1 sending {:val, 206} p5: decided {:val, 206} p6: decided {:val, 206} p4: decided {:val, 206} p9: decided {:val, 206} p2: decided {:val, 206} p11: decided {:val, 206} p2: {:message_queue_len, 0} p11: {:message_queue_len, 0} p4: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p6: {:message_queue_len, 0} [val: 206, val: 206, val: 206, val: 206, val: 206, val: 206] Starting paxos for p8 Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p11 Starting paxos for p10 Starting paxos for p1 Starting paxos for p5 Starting paxos for p6 Starting paxos for p7 Starting paxos for p9 :p8: started :p3: started :p2: started :p4: started :p11: started :p10: started :p1: started :p5: started :p6: started :p7: started :p9: started spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] spare = [:p10, :p1, :p5, :p6, :p7, :p9] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] kill: leaders, followers = [:p8, :p3], [:p2, :p4, :p11] p8 - Propose 1 with action nil p3 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p9 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p10 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 - p1 is leader p10 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p10 - prepare from p1 p1 - prepare from p1 p7 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p6 - prepare from p1 p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p5 - prepare from p1 p1 11 2 false p1 - prepared 1 1 nil nil p5 - p1 is leader p6 - p1 is leader p9 - p1 is leader p7 - p1 is leader p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 203} p10 - accept 1 1 {:val, 203} p5 - accept 1 1 {:val, 203} p7 - accept 1 1 {:val, 203} p9 - accept 1 1 {:val, 203} p1 - accept 1 1 {:val, 203} p6 - accept 1 1 {:val, 203} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 decided 1 {:val, 203} p1 decided 1 {:val, 203} p5 decided 1 {:val, 203} p6 decided 1 {:val, 203} p7 decided 1 {:val, 203} p9 decided 1 {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 203} p10 - Propose 1 with action nil p10 - Has already decided for 1 sending {:val, 203} p7: decided {:val, 203} p5: decided {:val, 203} p6: decided {:val, 203} p1: decided {:val, 203} p9: decided {:val, 203} p10: decided {:val, 203} p1: {:message_queue_len, 0} p6: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p9: {:message_queue_len, 0} [val: 203, val: 203, val: 203, val: 203, val: 203, val: 203] Starting paxos for p7 Starting paxos for p4 Starting paxos for p10 Starting paxos for p5 Starting paxos for p3 Starting paxos for p9 Starting paxos for p6 Starting paxos for p11 Starting paxos for p1 Starting paxos for p2 Starting paxos for p8 :p4: started :p7: started :p10: started :p9: started :p5: started :p6: started :p2: started :p3: started :p1: started :p11: started :p8: started spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] spare = [:p9, :p6, :p11, :p1, :p2, :p8] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] kill: leaders, followers = [:p7, :p4], [:p10, :p5, :p3] p4 - Propose 1 with action nil p7 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p8 - Propose 1 with action nil p9 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p9 - p1 is leader p1 - p1 is leader p6 - p1 is leader p2 - p1 is leader p11 - p1 is leader p8 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p11 - prepare from p1 p2 - prepare from p1 p6 - prepare from p1 p9 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 209} p9 - accept 1 1 {:val, 209} p6 - accept 1 1 {:val, 209} p2 - accept 1 1 {:val, 209} p11 - accept 1 1 {:val, 209} p1 - accept 1 1 {:val, 209} p8 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p9 decided 1 {:val, 209} p11 decided 1 {:val, 209} p8 decided 1 {:val, 209} p6 decided 1 {:val, 209} p1 decided 1 {:val, 209} p2 decided 1 {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 209} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 209} p1: decided {:val, 209} p6: decided {:val, 209} p11: decided {:val, 209} p2: decided {:val, 209} p8: decided {:val, 209} p9: decided {:val, 209} p9: {:message_queue_len, 0} p1: {:message_queue_len, 0} p2: {:message_queue_len, 0} p8: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p9 Starting paxos for p4 Starting paxos for p10 Starting paxos for p5 Starting paxos for p7 Starting paxos for p11 Starting paxos for p2 Starting paxos for p6 Starting paxos for p3 Starting paxos for p8 Starting paxos for p1 :p9: started :p10: started :p4: started :p5: started :p2: started :p7: started :p3: started :p11: started :p6: started :p8: started :p1: started spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] spare = [:p11, :p2, :p6, :p3, :p8, :p1] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] kill: leaders, followers = [:p9, :p4], [:p10, :p5, :p7] p9 - Propose 1 with action nil p4 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p11 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p6 SET BALLOT VALUE 3 nil p11 - p1 is leader p2 - p1 is leader p6 - p1 is leader p8 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p8 - prepare from p1 p6 - prepare from p1 p1 - prepare from p1 p11 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p8 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p6 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p2 decided 1 {:val, 210} p11 decided 1 {:val, 210} p3 decided 1 {:val, 210} p6 decided 1 {:val, 210} p8 decided 1 {:val, 210} p1 decided 1 {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p8: decided {:val, 210} p6: decided {:val, 210} p1: decided {:val, 210} p11: decided {:val, 210} p11: {:message_queue_len, 0} p2: {:message_queue_len, 0} p6: {:message_queue_len, 0} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p1: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p10 Starting paxos for p8 Starting paxos for p9 Starting paxos for p1 Starting paxos for p11 Starting paxos for p4 Starting paxos for p3 Starting paxos for p6 Starting paxos for p7 Starting paxos for p2 Starting paxos for p5 :p1: started :p11: started :p4: started :p7: started :p10: started :p2: started :p8: started :p9: started :p3: started :p6: started :p5: started spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] spare = [:p4, :p3, :p6, :p7, :p2, :p5] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] kill: leaders, followers = [:p10, :p8], [:p9, :p1, :p11] p10 - Propose 1 with action nil p8 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p4 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 - p10 is leader p3 - p10 is leader p5 - p10 is leader p6 - p10 is leader p2 - p10 is leader p7 - p10 is leader p4 - p2 is leader p3 - p2 is leader p2 - p2 is leader p5 - p2 is leader p6 - p2 is leader p7 - p2 is leader p2 sending all prepare 1 1 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p6 - prepare from p2 p7 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 1 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 2 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 3 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 4 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 5 false p2 - prepared 1 1 nil nil p2 Try to run prepared p2 11 6 false p2 SET BALLOT VALUE {:val, 202} p6 - accept 1 1 {:val, 202} p7 - accept 1 1 {:val, 202} p5 - accept 1 1 {:val, 202} p3 - accept 1 1 {:val, 202} p4 - accept 1 1 {:val, 202} p2 - accept 1 1 {:val, 202} p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p2 accepted 1 1 p4 decided 1 {:val, 202} p6 decided 1 {:val, 202} p7 decided 1 {:val, 202} p5 decided 1 {:val, 202} p2 decided 1 {:val, 202} p3 decided 1 {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 202} p4 - Propose 1 with action nil p4 - Has already decided for 1 sending {:val, 202} p5: decided {:val, 202} p4: decided {:val, 202} p6: decided {:val, 202} p2: decided {:val, 202} p7: decided {:val, 202} p3: decided {:val, 202} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p4: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 202, val: 202, val: 202, val: 202, val: 202, val: 202] Starting paxos for p1 Starting paxos for p8 Starting paxos for p5 Starting paxos for p10 Starting paxos for p7 Starting paxos for p9 Starting paxos for p3 Starting paxos for p4 Starting paxos for p6 Starting paxos for p2 Starting paxos for p11 :p7: started :p1: started :p8: started :p4: started :p5: started :p2: started :p10: started :p11: started :p9: started :p3: started :p6: started spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] spare = [:p9, :p3, :p4, :p6, :p2, :p11] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] kill: leaders, followers = [:p1, :p8], [:p5, :p10, :p7] p1 - Propose 1 with action nil p8 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p9 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p9 - p1 is leader p3 - p1 is leader p2 - p1 is leader p11 - p1 is leader p4 - p1 is leader p6 - p1 is leader p3 - p11 is leader p9 - p11 is leader p11 - p11 is leader p2 - p11 is leader p6 - p11 is leader p4 - p11 is leader p11 sending all prepare 1 1 p11 SET BALLOT VALUE 2 nil p9 - prepare from p11 p3 - prepare from p11 p11 - prepare from p11 p6 - prepare from p11 p2 - prepare from p11 p4 - prepare from p11 p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 1 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 2 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 3 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 4 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 5 false p11 - prepared 1 1 nil nil p11 Try to run prepared p11 11 6 false p11 SET BALLOT VALUE {:val, 201} p11 - accept 1 1 {:val, 201} p9 - accept 1 1 {:val, 201} p6 - accept 1 1 {:val, 201} p3 - accept 1 1 {:val, 201} p11 accepted 1 1 p2 - accept 1 1 {:val, 201} p4 - accept 1 1 {:val, 201} p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p11 accepted 1 1 p3 decided 1 {:val, 201} p9 decided 1 {:val, 201} p2 decided 1 {:val, 201} p4 decided 1 {:val, 201} p6 decided 1 {:val, 201} p11 decided 1 {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p9 - Propose 1 with action nil p9 - Has already decided for 1 sending {:val, 201} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 201} p9: decided {:val, 201} p11: decided {:val, 201} p6: decided {:val, 201} p2: decided {:val, 201} p3: decided {:val, 201} p4: decided {:val, 201} p3: {:message_queue_len, 0} p6: {:message_queue_len, 0} p11: {:message_queue_len, 0} p9: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 201, val: 201, val: 201, val: 201, val: 201, val: 201] Starting paxos for p2 Starting paxos for p6 Starting paxos for p4 Starting paxos for p3 Starting paxos for p8 Starting paxos for p1 Starting paxos for p10 Starting paxos for p9 Starting paxos for p5 Starting paxos for p7 Starting paxos for p11 :p6: started :p1: started :p2: started :p10: started :p4: started :p3: started :p8: started :p5: started :p9: started :p7: started :p11: started spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] spare = [:p1, :p10, :p9, :p5, :p7, :p11] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] kill: leaders, followers = [:p6, :p2], [:p4, :p3, :p8] p6 - Propose 1 with action nil p2 - Propose 1 with action nil p6 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p1 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p11 - Propose 1 with action nil p4 SET BALLOT VALUE 3 nil p1 - Propose 1 with action nil p8 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p10 - prepare from p1 p5 - prepare from p1 p9 - prepare from p1 p1 - prepared 1 1 nil nil p7 - prepare from p1 p11 - prepare from p1 p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p7 - p1 is leader p5 - p1 is leader p11 - p1 is leader p1 Try to run prepared p10 - p1 is leader p9 - p1 is leader p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 210} p1 - accept 1 1 {:val, 210} p10 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p9 - accept 1 1 {:val, 210} p7 - accept 1 1 {:val, 210} p11 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p10 decided 1 {:val, 210} p9 decided 1 {:val, 210} p5 decided 1 {:val, 210} p7 decided 1 {:val, 210} p11 decided 1 {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p11 - Propose 1 with action nil p11 - Has already decided for 1 sending {:val, 210} p1 decided 1 {:val, 210} p1 - Propose 1 with action nil p1 - Has already decided for 1 sending {:val, 210} p9: decided {:val, 210} p5: decided {:val, 210} p10: decided {:val, 210} p7: decided {:val, 210} p11: decided {:val, 210} p1: decided {:val, 210} p1: {:message_queue_len, 0} p9: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p11: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210, val: 210, val: 210] Starting paxos for p7 Starting paxos for p1 Starting paxos for p4 Starting paxos for p11 Starting paxos for p6 Starting paxos for p2 Starting paxos for p8 Starting paxos for p9 Starting paxos for p10 Starting paxos for p3 Starting paxos for p5 :p4: started :p11: started :p6: started :p2: started :p8: started :p9: started :p3: started :p1: started :p10: started :p5: started :p7: started spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] spare = [:p2, :p8, :p9, :p10, :p3, :p5] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] kill: leaders, followers = [:p7, :p1], [:p4, :p11, :p6] p1 - Propose 1 with action nil p7 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p2 - p1 is leader p9 - p1 is leader p8 - p1 is leader p10 - p1 is leader p3 - p1 is leader p5 - p1 is leader p2 - p10 is leader p8 - p10 is leader p3 - p10 is leader p9 - p10 is leader p10 - p10 is leader p5 - p10 is leader p10 sending all prepare 1 1 p10 SET BALLOT VALUE 2 nil p2 - prepare from p10 p8 - prepare from p10 p3 - prepare from p10 p10 - prepare from p10 p9 - prepare from p10 p5 - prepare from p10 p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 1 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 2 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 3 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 4 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 5 false p10 - prepared 1 1 nil nil p10 Try to run prepared p10 11 6 false p10 SET BALLOT VALUE {:val, 208} p9 - accept 1 1 {:val, 208} p8 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p3 - accept 1 1 {:val, 208} p5 - accept 1 1 {:val, 208} p10 - accept 1 1 {:val, 208} p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p10 accepted 1 1 p5 decided 1 {:val, 208} p8 decided 1 {:val, 208} p2 decided 1 {:val, 208} p10 decided 1 {:val, 208} p9 decided 1 {:val, 208} p3 decided 1 {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p2 - Propose 1 with action nil p2 - Has already decided for 1 sending {:val, 208} p5: decided {:val, 208} p2: decided {:val, 208} p3: decided {:val, 208} p10: decided {:val, 208} p9: decided {:val, 208} p8: decided {:val, 208} p3: {:message_queue_len, 0} p8: {:message_queue_len, 0} p2: {:message_queue_len, 0} p9: {:message_queue_len, 0} p10: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p8 Starting paxos for p9 Starting paxos for p11 Starting paxos for p2 Starting paxos for p6 Starting paxos for p3 Starting paxos for p1 Starting paxos for p10 Starting paxos for p4 Starting paxos for p7 Starting paxos for p5 :p8: started :p2: started :p9: started :p10: started :p11: started :p3: started :p1: started :p6: started :p4: started :p7: started :p5: started spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] spare = [:p3, :p1, :p10, :p4, :p7, :p5] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] p9 - Propose 1 with action nil kill: leaders, followers = [:p8, :p9], [:p11, :p2, :p6] p8 - Propose 1 with action nil p9 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p10 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p3 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p7 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p4 - prepare from p1 p10 - prepare from p1 p1 Try to run prepared p1 11 1 false p4 - p1 is leader p10 - p1 is leader p1 - prepared 1 1 nil nil p5 - p1 is leader p7 - p1 is leader p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 209} p1 - accept 1 1 {:val, 209} p10 - accept 1 1 {:val, 209} p4 - accept 1 1 {:val, 209} p7 - accept 1 1 {:val, 209} p3 - accept 1 1 {:val, 209} p5 - accept 1 1 {:val, 209} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p5 decided 1 {:val, 209} p4 decided 1 {:val, 209} p3 decided 1 {:val, 209} p7 decided 1 {:val, 209} p1 decided 1 {:val, 209} p10 decided 1 {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p5 - Propose 1 with action nil p3 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 209} p3 - Has already decided for 1 sending {:val, 209} p10: decided {:val, 209} p1: decided {:val, 209} p4: decided {:val, 209} p7: decided {:val, 209} p5: decided {:val, 209} p3: decided {:val, 209} p1: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p7: {:message_queue_len, 0} p10: {:message_queue_len, 0} [val: 209, val: 209, val: 209, val: 209, val: 209, val: 209] Starting paxos for p10 Starting paxos for p3 Starting paxos for p11 Starting paxos for p6 Starting paxos for p9 Starting paxos for p8 Starting paxos for p4 Starting paxos for p1 Starting paxos for p7 Starting paxos for p2 Starting paxos for p5 :p10: started :p3: started :p11: started :p6: started :p9: started :p8: started :p4: started :p1: started :p7: started :p2: started :p5: started spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] spare = [:p8, :p4, :p1, :p7, :p2, :p5] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] kill: leaders, followers = [:p10, :p3], [:p11, :p6, :p9] p10 - Propose 1 with action nil p3 - Propose 1 with action nil p10 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p8 SET BALLOT VALUE 3 nil p11 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p5 - Propose 1 with action nil p8 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p7 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 - p1 is leader p8 - p1 is leader p1 - p1 is leader p7 - p1 is leader p2 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p8 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p7 - prepare from p1 p1 Try to run prepared p1 11 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 3 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 4 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 5 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 11 6 false p1 SET BALLOT VALUE {:val, 208} p1 - accept 1 1 {:val, 208} p8 - accept 1 1 {:val, 208} p4 - accept 1 1 {:val, 208} p2 - accept 1 1 {:val, 208} p7 - accept 1 1 {:val, 208} p1 accepted 1 1 p5 - accept 1 1 {:val, 208} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 decided 1 {:val, 208} p2 decided 1 {:val, 208} p5 decided 1 {:val, 208} p8 decided 1 {:val, 208} p7 decided 1 {:val, 208} p4 decided 1 {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p5 - Propose 1 with action nil p5 - Has already decided for 1 sending {:val, 208} p8 - Propose 1 with action nil p8 - Has already decided for 1 sending {:val, 208} p1: decided {:val, 208} p7: decided {:val, 208} p4: decided {:val, 208} p2: decided {:val, 208} p5: decided {:val, 208} p8: decided {:val, 208} p8: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p1: {:message_queue_len, 0} p7: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 208, val: 208, val: 208, val: 208, val: 208, val: 208] Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p4 Starting paxos for p5 :p4: started :p2: started :p5: started :p1: started p1 - Propose 1 with action :kill_before_decision :p3: started p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p2 - p1 is leader p4 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p3 - p1 is leader p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p4 - p1 is leader p5 - p1 is leader p4 - p2 is leader p5 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p4 - prepare from p2 p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p4 - accept 1 2 {:val, 210} p3 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p5 - accept 1 2 {:val, 210} p2 Try to run prepared p3 - p2 is leader p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p5 decided 1 {:val, 210} p4 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2 accepted 1 2 p2 decided 1 {:val, 210} p4: decided {:val, 210} p5: decided {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p3: started :p2: started :p5: started :p1: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil :p4: started p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p1 - p1 is leader p1 sending all prepare 1 1 p2 - prepare from p1 p4 - prepare from p1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p2 - p1 is leader p1 Try to run prepared p3 - p1 is leader p4 - p1 is leader p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p5 - p1 is leader p5 - p2 is leader p4 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p4 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p3 - p2 is leader p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p5 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p3 - accept 1 2 {:val, 210} p4 - accept 1 2 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p4 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p5 decided 1 {:val, 210} p2: decided {:val, 210} p3: decided {:val, 210} p5: decided {:val, 210} p4: decided {:val, 210} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p2: started :p1: started :p5: started :p4: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil :p3: started p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 210} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p5 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p1 5 5 true p3 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p5 - p1 is leader p5 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p4 - p2 is leader p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p3 - accept 1 2 {:val, 210} p5 - accept 1 2 {:val, 210} p4 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p2 decided 1 {:val, 210} p3 - p2 is leader p5: decided {:val, 210} p4: decided {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p2 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 :p3: started :p5: started :p1: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil :p2: started :p4: started p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 - p1 is leader p4 - p1 is leader p1 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p3 - prepare from p1 p5 - prepare from p1 p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p1 Try to run prepared p5 - accept 1 1 {:val, 210} p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p5 - p1 is leader p5 - p2 is leader p2 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p4 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p3 - accept 1 2 {:val, 210} p4 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p5 - accept 1 2 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 decided 1 {:val, 210} p4 decided 1 {:val, 210} p3 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3 - p2 is leader p2: decided {:val, 210} p3: decided {:val, 210} p5: decided {:val, 210} p4: decided {:val, 210} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p3: started :p2: started :p5: started :p4: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil :p1: started p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p4 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p4 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p3 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 210} p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p5 - p1 is leader p5 - p2 is leader p4 - p2 is leader p2 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p5 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p3 - accept 1 2 {:val, 210} p4 - accept 1 2 {:val, 210} p5 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3: decided {:val, 210} p5: decided {:val, 210} p4: decided {:val, 210} p2: decided {:val, 210} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p2: started :p5: started :p3: started :p1: started :p4: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p5 - accept 1 1 {:val, 210} p3 - accept 1 1 {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p3 - p1 is leader p4 - accept 1 1 {:val, 210} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p2 - p1 is leader p5 - p1 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p3 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p2 - prepared 1 2 1 {:val, 210} p3 - accept 1 2 {:val, 210} p5 - accept 1 2 {:val, 210} p4 - accept 1 2 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p5 decided 1 {:val, 210} p4 decided 1 {:val, 210} p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p5: decided {:val, 210} p3: decided {:val, 210} p4: decided {:val, 210} p2: decided {:val, 210} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 Starting paxos for p5 :p1: started :p5: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil :p4: started :p2: started p3 SET BALLOT VALUE 3 nil :p3: started p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - p1 is leader p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p5 - accept 1 1 {:val, 210} p2 - p1 is leader p3 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p5 - p1 is leader p5 - p2 is leader p4 - p2 is leader p3 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p5 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p3 - accept 1 2 {:val, 210} p4 - accept 1 2 {:val, 210} p5 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5: decided {:val, 210} p4: decided {:val, 210} p3: decided {:val, 210} p2: decided {:val, 210} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 :p4: started :p1: started :p2: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil :p3: started p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil :p5: started p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p2 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p2 - accept 1 1 {:val, 210} p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - accept 1 1 {:val, 210} p1 5 5 true p4 - accept 1 1 {:val, 210} p1 - accept 1 1 {:val, 210} p3 - p1 is leader p4 - p1 is leader p5 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p2 - p1 is leader p5 - p1 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p2 - prepare from p2 p5 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p4 - prepare from p2 p3 - prepare from p2 p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p5 - accept 1 2 {:val, 210} p4 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p3 - accept 1 2 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 decided 1 {:val, 210} p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2: decided {:val, 210} p5 - p2 is leader p4: decided {:val, 210} p3: decided {:val, 210} p5: decided {:val, 210} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p5 :p2: started :p5: started :p4: started :p1: started p1 - Propose 1 with action :kill_before_decision p2 - Propose 1 with action nil p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil :p3: started p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p2 - prepare from p1 p5 - prepare from p1 p3 - prepare from p1 p1 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p2 - accept 1 1 {:val, 210} p5 - accept 1 1 {:val, 210} p1 accepted 1 1 p2 - p1 is leader p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p3 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p4 - p1 is leader p5 - p1 is leader p5 - p2 is leader p3 - p2 is leader p4 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p4 - prepare from p2 p3 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p2 - prepared 1 2 1 {:val, 210} p4 - accept 1 2 {:val, 210} p5 - accept 1 2 {:val, 210} p3 - accept 1 2 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p3 decided 1 {:val, 210} p2 decided 1 {:val, 210} p5: decided {:val, 210} p4: decided {:val, 210} p2: decided {:val, 210} p3: decided {:val, 210} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p5 :p5: started :p3: started :p2: started :p4: started :p1: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 210} p2 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p3 - accept 1 1 {:val, 210} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 210} p4 - accept 1 1 {:val, 210} p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 210} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 210}} p5 - p1 is leader p5 - p2 is leader p2 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p4 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p5 - prepare from p2 p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 210} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 210} p4 - accept 1 2 {:val, 210} p5 - accept 1 2 {:val, 210} p2 - prepared 1 2 1 {:val, 210} p3 - accept 1 2 {:val, 210} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 210} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p4 decided 1 {:val, 210} p5 decided 1 {:val, 210} p2 decided 1 {:val, 210} p3 decided 1 {:val, 210} p3 - p2 is leader p5: decided {:val, 210} p3: decided {:val, 210} p4: decided {:val, 210} p2: decided {:val, 210} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 210, val: 210, val: 210, val: 210] Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 Starting paxos for p2 Starting paxos for p1 :p3: started :p4: started :p5: started :p2: started :p1: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p3 - p1 is leader p4 - p1 is leader p5 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p3 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p3 - p2 is leader p4 - p2 is leader p5 - p2 is leader p2 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p3 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p4 - accept 1 2 {:val, 205} p5 - accept 1 2 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p3 decided 1 {:val, 205} p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p5 decided 1 {:val, 205} p2: decided {:val, 205} p3: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p5 Starting paxos for p2 Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 :p5: started :p1: started :p2: started :p4: started :p3: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p5 - p1 is leader p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p5 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p5 - p2 is leader p2 - p2 is leader p3 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p5 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p4 - accept 1 2 {:val, 205} p3 - accept 1 2 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p3 decided 1 {:val, 205} p2: decided {:val, 205} p5: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p2 Starting paxos for p3 Starting paxos for p1 Starting paxos for p4 Starting paxos for p5 :p2: started :p3: started :p1: started :p4: started :p5: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 - p1 is leader p4 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p3 - accept 1 1 {:val, 205} p1 5 4 true p2 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p2 - p2 is leader p4 - p2 is leader p3 - p2 is leader p5 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p3 - accept 1 2 {:val, 205} p4 - accept 1 2 {:val, 205} p5 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 decided 1 {:val, 205} p3 decided 1 {:val, 205} p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p1 Starting paxos for p3 Starting paxos for p5 Starting paxos for p2 :p4: started :p2: started :p1: started :p3: started :p5: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p1 - p1 is leader p2 - p1 is leader p3 - p1 is leader p4 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p4 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p3 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p5 - p2 is leader p2 - p2 is leader p3 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p2 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p2 - prepared 1 2 1 {:val, 205} p3 - accept 1 2 {:val, 205} p4 - accept 1 2 {:val, 205} p2 Try to run prepared p5 - accept 1 2 {:val, 205} p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p4 decided 1 {:val, 205} p3 decided 1 {:val, 205} p5 decided 1 {:val, 205} p2 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p5 Starting paxos for p1 Starting paxos for p2 Starting paxos for p4 Starting paxos for p3 :p5: started :p1: started :p2: started :p4: started :p3: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p5 - p1 is leader p4 - p1 is leader p1 - p1 is leader p3 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p5 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p5 - p2 is leader p2 - p2 is leader p3 - p2 is leader p4 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p2 - prepare from p2 p4 - prepare from p2 p3 - prepare from p2 p5 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p5 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p4 - accept 1 2 {:val, 205} p3 - accept 1 2 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p5 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p3 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 Starting paxos for p1 :p1: started :p4: started :p2: started :p3: started :p5: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p2 - p1 is leader p4 - p1 is leader p1 - p1 is leader p3 - p1 is leader p5 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p4 - prepare from p1 p1 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p4 - p2 is leader p2 - p2 is leader p5 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p2 - prepare from p2 p4 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p5 - prepare from p2 p3 - prepare from p2 p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p4 - accept 1 2 {:val, 205} p5 - accept 1 2 {:val, 205} p3 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p3 decided 1 {:val, 205} p5 decided 1 {:val, 205} p2: decided {:val, 205} p3: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p4: {:message_queue_len, 0} p3: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p4 Starting paxos for p5 Starting paxos for p1 Starting paxos for p3 Starting paxos for p2 :p4: started :p5: started :p1: started :p3: started :p2: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p4 - p1 is leader p3 - p1 is leader p5 - p1 is leader p2 - p1 is leader p1 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p5 - prepare from p1 p4 - prepare from p1 p1 - prepare from p1 p3 - prepare from p1 p2 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p4 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p2 - accept 1 1 {:val, 205} p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p4 - p2 is leader p5 - p2 is leader p2 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p2 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p3 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p4 - accept 1 2 {:val, 205} p5 - accept 1 2 {:val, 205} p3 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p5 decided 1 {:val, 205} p3 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p5: decided {:val, 205} p3: decided {:val, 205} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p3 Starting paxos for p4 Starting paxos for p5 Starting paxos for p2 :p1: started :p3: started :p4: started :p5: started :p2: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p1 - p1 is leader p5 - p1 is leader p3 - p1 is leader p2 - p1 is leader p4 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p4 - prepare from p1 p3 - prepare from p1 p1 - prepared 1 1 nil nil p5 - prepare from p1 p1 Try to run prepared p2 - prepare from p1 p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p2 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 5 5 true p4 - accept 1 1 {:val, 205} p1 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p3 - p2 is leader p4 - p2 is leader p2 - p2 is leader p5 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p2 - prepare from p2 p5 - prepare from p2 p3 - prepare from p2 p4 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p2 - prepared 1 2 1 {:val, 205} p5 - accept 1 2 {:val, 205} p3 - accept 1 2 {:val, 205} p4 - accept 1 2 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p4 decided 1 {:val, 205} p3 decided 1 {:val, 205} p2 decided 1 {:val, 205} p5 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p3: {:message_queue_len, 0} p4: {:message_queue_len, 0} p5: {:message_queue_len, 0} p2: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p3 Starting paxos for p1 Starting paxos for p2 Starting paxos for p5 Starting paxos for p4 :p3: started :p4: started :p1: started :p5: started :p2: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p3 - p1 is leader p5 - p1 is leader p1 - p1 is leader p4 - p1 is leader p2 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p3 - prepare from p1 p2 - prepare from p1 p1 - prepare from p1 p4 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p2 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p3 - accept 1 1 {:val, 205} p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p2 - p2 is leader p4 - p2 is leader p5 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p5 - prepare from p2 p3 - prepare from p2 p4 - prepare from p2 p2 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p3 - accept 1 2 {:val, 205} p5 - accept 1 2 {:val, 205} p4 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 4 true p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p5 decided 1 {:val, 205} p3 decided 1 {:val, 205} p2 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2: decided {:val, 205} p4: decided {:val, 205} p3: decided {:val, 205} p5: decided {:val, 205} p3: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p4: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205] Starting paxos for p1 Starting paxos for p4 Starting paxos for p2 Starting paxos for p3 Starting paxos for p5 :p5: started :p1: started :p4: started :p2: started :p3: started p1 - Propose 1 with action :kill_before_decision p1 SET BALLOT VALUE 3 nil p3 SET BALLOT VALUE 3 nil p4 SET BALLOT VALUE 3 nil p2 SET BALLOT VALUE 3 nil p5 SET BALLOT VALUE 3 nil p2 - Propose 1 with action nil p4 - p1 is leader p1 - p1 is leader p5 - p1 is leader p2 - p1 is leader p3 - p1 is leader p1 sending all prepare 1 1 p1 SET BALLOT VALUE 2 nil p1 - prepare from p1 p4 - prepare from p1 p2 - prepare from p1 p3 - prepare from p1 p5 - prepare from p1 p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 1 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 2 false p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 3 false p1 SET BALLOT VALUE {:val, 205} p1 - prepared 1 1 nil nil p2 - accept 1 1 {:val, 205} p4 - accept 1 1 {:val, 205} p1 Try to run prepared p3 - accept 1 1 {:val, 205} p5 - accept 1 1 {:val, 205} p1 5 4 true p1 - prepared 1 1 nil nil p1 Try to run prepared p1 5 5 true p1 - accept 1 1 {:val, 205} p1 accepted 1 1 p1 accepted 1 1 p1 accepted 1 1 p1 - Leader has action to die before decision {:decide, 1, {:val, 205}} p5 - p2 is leader p2 - p2 is leader p4 - p2 is leader p3 - p2 is leader p2 sending all prepare 1 2 p2 SET BALLOT VALUE 2 nil p3 - prepare from p2 p2 - prepare from p2 p4 - prepare from p2 p5 - prepare from p2 p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 1 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 2 false p2 - prepared 1 2 1 {:val, 205} p2 Try to run prepared p2 5 3 false p2 SET BALLOT VALUE {:val, 205} p4 - accept 1 2 {:val, 205} p2 - prepared 1 2 1 {:val, 205} p3 - accept 1 2 {:val, 205} p2 Try to run prepared p5 - accept 1 2 {:val, 205} p2 5 4 true p2 accepted 1 2 p2 - accept 1 2 {:val, 205} p2 accepted 1 2 p2 accepted 1 2 p2 accepted 1 2 p3 decided 1 {:val, 205} p4 decided 1 {:val, 205} p2 decided 1 {:val, 205} p5 decided 1 {:val, 205} p2: decided {:val, 205} p5: decided {:val, 205} p3: decided {:val, 205} p4: decided {:val, 205} p4: {:message_queue_len, 0} p2: {:message_queue_len, 0} p5: {:message_queue_len, 0} p3: {:message_queue_len, 0} [val: 205, val: 205, val: 205, val: 205]