耗时 13小时完成(每天做实验1小时,思路分散还是影响进度的)
耗时的主要原因在于分析问题不够清晰
, 主要遇到的问题有:
- 心跳时间与选举超时时间的比重调整的不好
- 集群角色的变更没有调度好,在一些关键行为后没有对角色正确的设置
- 太过于自信,应该先写注释在写代码,必须全面逻辑通顺了再写代码,这样才能减少bug的出现提高效率,以后要一口气把逻辑用注释写好后再开发
TODO:
- 选举/心跳等过程 仅对raft的状态添加原子锁保证了状态更新的并发安全,但是没有保证多个状态之间的事务性可能存在潜在的风险(这可能是偶尔不AC的原因)
- 偶尔还是有测试不通过的问题,我姑且认为是时间可用性的影响吧 今后实验遇到问题再修复
- 最开始的设计 应该只考虑必要的事情,简化复杂度 才能专注重要的事情
- 保证逻辑连贯性的方法 就是一口气把关键逻辑的注释先写好 抛开代码 用伪代码思考逻辑, 大部分的问题 都是逻辑问题
- 问题通常很简单,只是没有遵循思考的章法