MIT 6.824 Lab2, part1小结

关于MIT 6.824课程的Lab 2, part 1

从昨晚在宾馆到今天飞机上,都在过这几个test case,终于最后有点讨巧的过了。

View service是MIT介绍paxos之前用来入门的,它的原理是以时间先后的顺序确定主备服务器,由定期的心跳更新此关系。之所以放在单独的service里获取主备关系,是为了将主备关系从K-V系统中解耦,从而K-V系统不用关心键值操作之外的事情,让更加上层的系统进行处理。

遇到的问题:

  • view service当前的view,和下一个未确认的view在哪些时间点更新?
    • 怎么认为这个服务器作为主,又怎么确认其为Backup,Idle?
    • 什么时候能将这些认识更新到服务器当前view上?
  • 服务器看到的view service的当前view是怎样的?
    • 不同服务器查询当前view状态,获得的结果是一样的吗?

我用复杂难看的if-else语句最后实现这些逻辑,但不可否认,实现的漏洞很多,我理想的解决方案还是使用状态机,可以更加清晰容易更新(用图表展现)。

Comments

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×