MIT6.824 Lab2B TestBackup2B 分析

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

你可能感兴趣的:(MIT6.824 Lab2B TestBackup2B 分析)