版本发行日志
1.2.4
2019-03-20
Bug Fixex
Features
Breaking Changes
- 无
致谢(排名不分先后)
1.2.3
2019-03-05开源第一个版本
1.2.2
2019-02-21
- Bug Fixex
- PeerId 以及 Endpoint 改为不可变对象,避免 getLeaderId 等 api 的并发问题
- sofa-commaon 升级到 1.0.12,之前依赖的 1.0.9 版本没有发布到公网仓库
- Features
- Jraft-rheakv 完成了 auto range split,在启用 placementDriver(pd)的情况下,pd 可根据每个节点上报的状态信息计算并下发 range split 指令;不启用 pd 的情况下也提供了 RheaKVCliService,可以使用 cli 手动触发 range split
- LogExceptionHandler 泛型支持
- 新增 MetricThreadPoolExecutor(继承 LogThreadPoolExecutor),用于打印 uncaught exception 日志并统计 task.run() 耗时,jraft 中所有 ThreadPoolExecutor 全部替换为 MetricThreadPoolExecutor 进行耗时指标统计,这个指标可作为实践中调整线程池配置的重要参考
- Breaking Changes
- 移除了 Endpoint/PeerId 的
reset
方法。
- 移除了 Endpoint/PeerId 的
1.2.1
2019-01-28
- Bug Fixes
- 修复 RaftGroupService 关闭共享的 rpcServer。
- 修复 RheaKV 状态机中的的 batch write 导致 apply 顺序变更。
- 修复时间使用 API 错误。
- Features
- 融合 jraft 与 rheakv 重复功能的代码。
- 降低 Follower 复制请求处理过程中的内存消耗。
- RouteTable 中的 conf 读写由原来的 synchronized 优化为读写锁。
- RheaKV 实现 distributed lock 的 lock safe with fencing, 以及自动续租能力。
- RheaKV 新增 memoryDB 存储类型的实现, 默认配置仍为 rocksDB 存储。
- RheaKV 实现 get/put 接口的 client batching, 有很好的性能收益。
- 新增 module: jraft-example, 添加了丰富的用例。
- 新增 Configured options, 方便非配置文件使用方式。
- 新增 benchmark 代码, 根据压测结果更新了部分配置的默认值, 压测结果见这里。
- Breaking Changes
- 项目的 groupId 由 com.alipay.jraft 变更为 com.alipay.sofa, 包名变更为 com.alipay.sofa.jraft,所以在通信层 1.2.1 版本与之前的版本不能兼容,批量发布过程中新老版本同时存在可能导致出现两个 leader 的情况,如果需要平滑升级的同学请联系我们提供平滑升级方案
此版本推荐升级。
- 项目的 groupId 由 com.alipay.jraft 变更为 com.alipay.sofa, 包名变更为 com.alipay.sofa.jraft,所以在通信层 1.2.1 版本与之前的版本不能兼容,批量发布过程中新老版本同时存在可能导致出现两个 leader 的情况,如果需要平滑升级的同学请联系我们提供平滑升级方案
1.1.0
2018-11-20
- 升级bolt到1.5.2(重要, bolt 老版本存在重连引起的死锁问题)。
- 新增了一个嵌入式的分布式 KV 组件(RheaKV)
- CliServiceImpl 的 getLeader 应该在某个节点失败情况下自动重试下一个节点
- 新增
NodeImpl#getCurrentConf()
方法用于获取当前节点的配置列表,仅用于调试查看。 - 改进 disruptor 线程使用,改进服务关闭过程,更友好地关闭线程。
- 修复 Configuration 变更没有反馈到 Node 内存状态的 bug
- 升级 RocksDB 到 5.14.2
- 加强了用户使用 API 的参数校验。
1.0.1
2018-10-09
- RocksDB log 存储尊重 RaftOptions 的 sync 选项。
- 移除 log4j 类库强依赖。
- 修复一些 typo
1.0.0
2018.09.13
- 日志压缩异步化,加速 snapshot 处理。
- Replicator pipeline 优化。
- Task 的 closure 新增
onCommitted
回调,在日志提交到 RAFT group 之后,应用到状态机之前回调。 - 更加详细的 metrics 统计信息。
- 线性一致读支持,参见文档。
- 强制要求 bolt 升级到 1.5.1 版本及以上,因为 pipeline 特性依赖。
0.0.2
2018-08-23:
- 增加 metrics 统计,参见文档。
- 改善日志压缩和内部实现部分性能。
0.0.1
- 基础版本发布,实现了 braft 除了 snapshot 流控之外的所有功能。