版本发行日志


1.2.4

2019-03-20


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 方法。

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 的情况,如果需要平滑升级的同学请联系我们提供平滑升级方案
      此版本推荐升级。

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 流控之外的所有功能。