版本发行日志



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

    2019-01-28

    • Bug Fixes
      • 修复 RaftGroupService 关闭共享的 rpcServer。
      • 修复 RheaKV 状态机中的的 batch write 导致 apply 顺序变更。
      • 修复时间使用 API 错误。
    • Features
      • 融合 jraft 与 rheakv 重复功能的代码。
      • 降低 Follower 复制请求处理过程中的内存消耗。
      • RouteTable 中的 conf 读写由原来的 synchronized 优化为读写锁。
      • RheaKV 实现 distributed lock 的 , 以及自动续租能力。
      • RheaKV 新增 memoryDB 存储类型的实现, 默认配置仍为 rocksDB 存储。
      • RheaKV 实现 get/put 接口的 client batching, 有很好的性能收益。
      • 新增 Configured options, 方便非配置文件使用方式。
      • 新增 benchmark 代码, 根据压测结果更新了部分配置的默认值, 压测结果见这里
    • Breaking Changes
      • 项目的 groupId 由 com.alipay.jraft 变更为 com.alipay.sofa, 包名变更为 com.alipay.sofa.jraft,所以在通信层 1.2.1 版本与之前的版本不能兼容,批量发布过程中新老版本同时存在可能导致出现两个 leader 的情况,如果需要平滑升级的同学请联系我们提供平滑升级方案
        此版本推荐升级。

    1.1.0

    • 升级bolt到1.5.2(重要, bolt 老版本存在重连引起的死锁问题)。
    • 新增了一个嵌入式的分布式 KV 组件(RheaKV)
    • CliServiceImpl 的 getLeader 应该在某个节点失败情况下自动重试下一个节点
    • 新增 方法用于获取当前节点的配置列表,仅用于调试查看
    • 改进 disruptor 线程使用,改进服务关闭过程,更友好地关闭线程。
    • 修复 Configuration 变更没有反馈到 Node 内存状态的 bug
    • 升级 RocksDB 到 5.14.2
    • 加强了用户使用 API 的参数校验。

    1.0.1

    2018-10-09

    • RocksDB log 存储尊重 RaftOptions 的 sync 选项。
    • 移除 log4j 类库强依赖。
    • 修复一些 typo

    2018.09.13

    • 日志压缩异步化,加速 snapshot 处理。
    • Replicator pipeline 优化。
    • Task 的 closure 新增 回调,在日志提交到 RAFT group 之后,应用到状态机之前回调。
    • 更加详细的 metrics 统计信息。
    • 线性一致读支持,参见文档。
    • 强制要求 bolt 升级到 1.5.1 版本及以上,因为 pipeline 特性依赖。

    0.0.2

    2018-08-23:

    • 增加 metrics 统计,参见文档。

    0.0.1

    • 基础版本发布,实现了 braft 除了 snapshot 流控之外的所有功能。