TestBackup2B 分析:
1.
0 | 1 | 2 | 3 | 4 |
---|
All add a log and commit l1 leader 0
0:
1:
2:
3:
4:
2.
2,3,4 offline
0,1 add a log but not commit
0 | 1 |
---|
0:
1:
2:
3:
4:
3.
0,1 offline
2,3,4 reconnect ,maybe leader 2 and leader's term change ,add a log l3 and commit. leader 2
2 | 3 | 4 |
---|
0:
1:
2:
3:
4:
4.
Disconnect a follower from 2,3,4, eg: 3
Then add a log l4
2 | 4 |
---|
0:
1:
2:
3:
4:
5.
All disconnect ,and reconnect 0, 1 and a follower from step 4( server 3) ,
So now server 3 should be the leader ( has last log ),then term change .maybe 3
Server convert to candidate
Then add a log l5 (server 0 was leader from step 1)
0 | 1 | 3 |
---|
0:
1:
2:
3:
4:
Sync to server 0 and server 1
0:
1:
2:
3:
4:
6.
Then all start and add a log l6
Server should be the leader
0 | 1 | 2 | 3 | 4 |
---|
0:
1:
2:
3:
4:
Then sync log to others