Skip to content

Releases: sofastack/sofa-jraft

v1.3.1

20 Apr 03:05
be54c3c
Compare
Choose a tag to compare
  • Features

    • multi raft group 之间共享 timer 和 scheduler 等较重的线程资源,优化 multi group 场景中的多余资源占用 #414
    • 提供 RPC adapter,用户可基于 SPI 扩展不同的 RPC 实现。
    • 正式提供稳定的 RocksDBSegmentLogStorage,适合 value 较大的数据存储 #156 #399
    • sofa-bolt 升级到 1.6.1,支持 SSL 以及具有更好的小数据包传输能力
    • 引入一个新的数据结构 segment list 来解决 LogManager 中过多的 log memory copy #377
    • 采纳 nacos 的建议,对 raft Task 增加 join API #403
  • Bug Fixes

    • 修复 bolt rpc callback 默认的任务饱和丢弃策略,改为抛出异常 #413
    • 修复 learner 启动晚于 leader 选举成功时无法复制日志的 bug #385
  • Breaking Changes

  • 致谢(排名不分先后)
    @jovany-wang
    @SteNicholas
    @zongtanghu
    @OpenOpened

v1.3.1.beta2

01 Jan 08:25
Compare
Choose a tag to compare

1.3.1.beta2

2020-01-01

  • Bug Fixes
    • 修复 learner 晚于 leader 启动情况下不能复制日志的问题 #385
  • Breaking Changes

v1.3.0

30 Nov 03:37
Compare
Choose a tag to compare

1.3.0

2019-11-29

  • Features
    • 新增 Read-only member(learner) 角色,支持 learner 节点上的线性一致读 #312
    • 实现优先级选举 #334
    • 在 multi raft group 的场景中,随机打散每个 group 的第一次 snapshot timeout 时间,避免一个进程内多个 group 同时 snapshot #358
    • RheaKV 新增 containsKey API #302
    • RheaKV 实现 snapshot checksum 以及异步 snapshot #287
    • 新增 replicator 的 state 监听器: ReplicatorStateListener #256
    • RepeatedTimer 的默认实现替换为 HashedWheelTimer #258
    • 修复 windows 上定时器 CPU 消耗偏高的问题。 #311
    • kill -s SIGUSR2 pid 中增加打印 rocksdb stats 和所有 ThreadPool 指标统计信息
    • 升级 rocksdb 版本到 5.18.3
    • 新增实验性质的 RocksDBSegmentLogStorage,适合 value 较大的数据存储 #156
    • Counter 例子改进,演示 ReadIndex 线性一致读
    • 优化 checksum 中多余的 mem copy #293
  • Bug Fixes
    • 删除数据并重启且期间没有新的 task 提交的情况下 prev log index 紊乱的修复 #255
    • 修复一些选举和线性一致读相关的 corner case #361 #358
    • Recyclers 多个线程 recycle 资源时的 NPE 修复 #355
  • Breaking Changes
  • 致谢(排名不分先后)
    @zongtanghu
    @Devyun
    @masaimu
    @SteNicholas
    @yetingsky

v1.2.7.beta1

16 Oct 07:19
Compare
Choose a tag to compare

在 v1.2.6 的基础上 cherry-pick 了 #295 ,包含以下改动:

  1. 开放 rocksdb TableFormatConfig 配置
  2. kill -s SIGUSR2 pid 中增加打印 rocksdb stats 信息
  3. 升级 rocksdb 版本到 5.18.3

v1.2.6

15 Aug 17:06
Compare
Choose a tag to compare

1.2.6

2019-08-15

  • Bug Fixex
    • 修复 ReadIndex 并发情况下可能出现的读超时 #121
    • 保存 raft meta 失败后终止状态机 #96
    • 修复 windows 环境中无法原子 move 文件的问题 #104
    • 当 RheaKV apply 失败时终止状态机避免出现数据不一致情况 #137
  • Features
    • 增加 LogEntry checksum validation #123
    • 优化 log replication 线程模型减少锁竞争 #170
    • 优化 RheaKV multi group snapshot #42
    • 对于 multi-raft-group 场景,提供 manual rebalance API 在无 PD 模式手动平衡各节点 leader 数量 #176
    • CliService 提供获取存活 follower 节点的 API
    • 引入 SPI 扩展机制,LogStorageSnapshotStorageRaftMetaStorageLogEntryCodec 均可基于 SPI 扩展
    • Linux 平台 SIGUSR2 信号输出节点状态以及 metric 信息 #208
    • RheaKV 增加 CompareAndPut 原子更新 API
    • 新增 pooled buf allocator 解决 log replication 时大量分配 byte[] 频繁触发 fullgc #161
    • 默认关闭 RheaKV rocksdb 的 fsync 和 WAL,依靠 raft log 和 snapshot 确保数据一致性 #159
    • 当 raft node 过载时拒绝新的请求 #144
  • Breaking Changes
  • 致谢(排名不分先后)
    @SteNicholas @zongtanghu

v1.2.5.bugfix

17 Apr 10:52
Compare
Choose a tag to compare

1.2.5.bugfix

2019-04-17

  • Bug Fixes

    • 修复 rheakv rocksdb 存储实现在启动时没有删除数据的问题,会导致非幂等操作出现不一致,比如 getSequence 跳跃
  • Features

    • 优化了 multi-raft-group 的 snapshot #42
  • Breaking Changes

推荐升级

v1.2.5

01 Apr 07:29
Compare
Choose a tag to compare

1.2.5

2019-04-01

  • Bug Fixes

    • 修复 jmh 与 unit test 代码冲突问题 #69
    • 修复 snapshot 过大引起的安装失败 bug,会影响新增节点的加入 #79 #80
  • Features

    • LogManagerImpl 中耗费 cpu 部分的代码优化 #65
    • 修正一些单词拼写错误
  • Breaking Changes

此版本强烈推荐升级

v1.2.4

20 Mar 08:26
Compare
Choose a tag to compare

1.2.4

2019-03-20

  • Bug Fixes

    • 修复一种情况下 lease read 的 stale read #34
    • 部分 timestamp 修改为 monotonic time #24
    • 修复一种情况下 replicator 被 block 住的问题 #19
    • 解决 windows 平台下某些单测无法创建目录 #51
    • 解决 windows 平台下某些 rocksdb options 设置不当导致进程 crash #22
  • Features

    • 开放 RocksDB options 的设置给用户层 #20
    • Pre-vote 优化,启用 lease 机制来规避网络分区+集群长时间无写入的情况下,游离节点回归后打断当前 term,提升系统可用性 #15
    • 升级 bolt 到 1.5.3 #10
    • BallotBox 中的 ReadWriteLock 优化为 StampedLock 并对 lastCommittedIndex 提供乐观读实现 #3
    • 修正几个单词拼写错误
  • Breaking Changes

  • 致谢(排名不分先后)
    @pifuant @huangyunbin @shiftyman @slievrly

v1.2.3

18 Mar 07:46
Compare
Choose a tag to compare
Replace AtomicLong to long while ReentrantReadWriteLock is enough (#3)

* Replace AtomicLong to long while ReentrantReadWriteLock is enough

* replace ReentrantReadWriteLock to StampedLock

* unlockWrite