Releases: Icingworld/WW-RaftKV
Releases · Icingworld/WW-RaftKV
v2.1.0
v2.0.0
v2.0.0
- 重新设计了
raftkv的架构,使得层次更加清晰,各模块职责明确 - 重新设计了
rpc框架,针对异步系统设计了带请求序列的通信协议 - 重新设计了
raft算法层和raftclerk应用层间通信的管道 - 重新设计了具有幂等性的客户端通信协议,重新编写了测试用客户端
TODO
- 将串行通信优化为并行
- 管理变量生命周期
- 重新添加注释、编写文档
v1.0.0
v1.0.0
初步实现了Raft基本功能
- 节点状态管理: 支持
Follower、Candidate、Leader三种角色的状态切换; - 选举机制: 实现了基于任期的投票逻辑,支持随机超时选举触发与投票限制;
- 日志复制:
Leader将客户端请求转化为日志条目并同步给其他节点; - 日志一致性保障: 通过
prevLogIndex和prevLogTerm保证日志匹配性; - 日志提交与应用: 日志在被大多数节点确认后提交,并推送给状态机应用;
- 心跳机制:
Leader定期发送心跳保持领导地位并触发空日志复制; - 任期与投票状态持久化: 防止重启后错误行为;
- 快照与日志压缩支持: 适用于长时间运行场景下的日志膨胀问题。