Skip to content

Releases: Icingworld/WW-RaftKV

v2.1.0

23 Jun 08:09
546be3e

Choose a tag to compare

v2.1.0

  • 优化了Rpc框架,使用并行通信,提高了性能
  • 使用智能指针管理资源的生命周期,减少了内存泄漏
  • 使用内存池替代动态分配,提高分配效率
  • 使用自定义的轻量化日志库,后续可扩展性强
  • 修复了一些bug
  • 完善了注释和文档

v2.0.0

16 Jun 12:09
7c93b97

Choose a tag to compare

v2.0.0

  • 重新设计了raftkv的架构,使得层次更加清晰,各模块职责明确
  • 重新设计了rpc框架,针对异步系统设计了带请求序列的通信协议
  • 重新设计了raft算法层和raftclerk应用层间通信的管道
  • 重新设计了具有幂等性的客户端通信协议,重新编写了测试用客户端

TODO

  • 将串行通信优化为并行
  • 管理变量生命周期
  • 重新添加注释、编写文档

v1.0.0

06 Jun 06:12
fe75966

Choose a tag to compare

v1.0.0

初步实现了Raft基本功能

  • 节点状态管理: 支持FollowerCandidateLeader三种角色的状态切换;
  • 选举机制: 实现了基于任期的投票逻辑,支持随机超时选举触发与投票限制;
  • 日志复制: Leader将客户端请求转化为日志条目并同步给其他节点;
  • 日志一致性保障: 通过prevLogIndexprevLogTerm保证日志匹配性;
  • 日志提交与应用: 日志在被大多数节点确认后提交,并推送给状态机应用;
  • 心跳机制: Leader定期发送心跳保持领导地位并触发空日志复制;
  • 任期与投票状态持久化: 防止重启后错误行为;
  • 快照与日志压缩支持: 适用于长时间运行场景下的日志膨胀问题。