Skip to content

Latest commit

 

History

History
505 lines (319 loc) · 43.9 KB

CHANGELOG_CN.MD

File metadata and controls

505 lines (319 loc) · 43.9 KB

v3.5.4

New features

  • Pika 支持动态调整全量同步限速参数 rsync-timeout-ms 和 throttle-bytes-per-second#2633@cheniujh

  • 将 info key space 1 的结果输出至 info all 并展示到监控界面中#2603@XiaoLiang2333

  • Pika 磁盘IO 限速参数支持 OnlyRead、OnlyWrite、ReadAndWrite,默认支持OnlyWrite#2599@vacheli

Improvement

Bugfix

  • 修复使用 Pika Exporter 时可能会出现 slots 分配不均衡的问题#2651@chejinge

  • 修复 Codis dashboard 不能正确更新 master 实例状态的问题#2650@vacheli

  • 修复 Redis 事务 binlog 解析失败导致的主从同步异常问题#2642@chejinge

  • 修复 Pika Expoter 启动时不带参数导致启动失败问题#2640@Polaris3003

  • 修复使用 Pika Operater 拉起集群Codis-proxy panic 的问题 #2632@chejinge

  • 修复 CI 编译出的二进制进行自动化测试时 cp 命令失败问题#2614@cheniujh

  • 修复变量未初始化导致 cache 启动失败的问题#2613@chejinge

  • 修复 userpass 和 userblacklist 动态修改参数功能异常问题#2600@chejinge

  • 修复 scard sscan 结果不一致的问题#2596@chejinge

  • 修复当 max-rsync-parallel-num 大于4,slave 会在主从复制时 coredump 的问题#2595@chejinge

  • 调整不常用的线程池线程数,避免因为空跑导致性能损耗#2590 @chejinge

  • 修复 Pika 事务边缘测试 case 不通过的问题#2586 @chejinge

  • 将 cache-model 修改成 cache-mode#2585@chejinge

  • 修复使用 info keyspace 后,info all 死锁的问题#2584 @chejinge

  • 修复因修改 zsetscorekeycomparatorimpl 字典序比较熟顺序,导致353 352极端场景不兼容的问题#2583 @wangshao1

  • 修复 compact 死锁的问题 #2581 @chejinge

  • slotmigrate 添加 go test #2576@chejinge

  • 更新 Pika Operater 使用的 pika 版本#2572@chejinge

  • 修复 config rewrite 后 blockcache 数值异常的问题#2561@chejinge

  • 修复 slotmigrate 动态修复后值错误的问题#2548@chejinge

  • 修复 spop 可能会出现主从数据不一致的问题#2541@chenbt-hz

  • 修复 CloseFd(it->second[i]) 出现越界的问题#2539@chejinge

  • 修复 Flushall 和 FlushDB 死锁的隐患,并删除 FlushSubDB 接口#2533@Mixficsol

  • 增加参数控制是否清理 tcl 测试后产生的数据文件,防止废弃数据占据磁盘#2507@Mixficsol

v3.5.3

新特性

Bugfix

  • 修复 Pika 有从节点进行全量复制期间会误删除 dump 文件的问题#2377@wangshao1

  • 修复主从复制过程中, slave 节点收到 master 异常回包后的处理逻辑#2319@wangshao1

  • 在 Pika 执行 shutdown 命令时调用 disable compaction, 提升进程退出速度 #2345 @panlei-coder

  • 修复 Codis-dashboard Redis Memory 值不准确的问题#2337 @Mixficsol

  • INFO 命令耗时优化,降低查磁盘频率 #2197 @chejinge

  • 修复 Rsync 删除临时文件路径不对,删除失败,导致rocksdb打开失败的问题#2186@wangshao1

  • 修复 Compact ,Bgsave ,Info keyspace 命令未指定db名称,导致部分命令 coredump 的问题#2194@u6th9d

  • Codis dashboard 用 info replication 替代 info 命令查寻 master ip 降低对 Pika 的性能影响 #2198 @chenbt-hz

  • 修复 Pika cache 使用边缘case,解决部分场景下 cache 和 DB 数据不一致的问题#2225 @chejinge

  • 修复当 dump 文件夹为空时,会启动报错 Segmentation fault 的问题#2265 @chenbt-hz

  • 修复因为flag计算错误,导致的部分命令缓存没有生效问题#2217 @lqxhub

  • 修复主从复制模式下,主实例 flushdb 后,从实例因为死锁导致的不能访问的问题#2249@ForestLH

  • 修复部分命令未对 RocksDB 的返回值进行判断的问题#2187@callme-taota

  • 规范函数的返回值及初始值#2176@Mixficsol

  • 修复网络监控指标统计不准确的问题#2234@chengyu-l

  • 修复配置文件加载部分参数异常的问题#2218@jettcc

  • 修复 Codis dashboard cpu 100% 的问题#2393@chengyu-l

  • 修复 Codis fe pika 主从角色显示异常的问题#2387@chengyu-l

  • 修复迁移数据后数据不一致的问题#2485@chejinge

  • 修复dbsize 计算错误问题#2494@chejinge

  • 修复扩缩容或者 pod 起停后,Codis-dashboard 界面显示不准确的问题#2475@chengyu-l

  • 修复 DB 层重复上锁的问题#2372 @Mixficsol

  • 修复全量复制失败后,未做处理导致数据丢失问题#2439@wangshao1

  • 修复主从复制过程中,主实例执行 bgsave 过程中,没有正确回应从的同步请求#2437@wangshao1

  • 全量复制过程中,添加数据同步状态,明确数据同步进度#2430@baixin01

  • 修复从库在 Apply binlog 时,没有对操作的 key 加锁,导致数据不一致的问题#2409 @chejinge

  • 修复 codis slot 迁移过程中 master 实例 coredump 的问题#2415 @chejinge

  • 修复在主从复制过程中,删除正在使用的 dump 文件的问题#2377@wangshao1

  • 修复主从复制过程中从实例 rsync 响应错误的问题#2319@wangshao1

  • 修复主从复制模式下,主实例flushdb后,从实例因死锁而无法访问的问题#2372 @Mixficsol

v3.5.2

新特性

Bugfix

  • 修复 pika 在使用 SETRANGE 命令出现 coredump的问题 #2125 @chejinge

  • 修复因删除 Clearreplicationid 写进 binlog 导致的全量复制问题 #2136 @Mixficsol

  • 修改锁粒度,提升 pika 写 binlog 的性能 #2129 @wangshao1

  • 增加 redis-copy 流量复制工具 #2044 @Mixficsol

  • 修复复杂数据类型成员变量可能出现数据溢出 #2016 @u6th9d

  • 修复 decr 命令返回值错误问题 #2092 @dingxiaoshuai123

  • 修复 setrange 和 setbit 命令没有保留原 key 的过期时间的问题 #2095 @u6th9d

v3.5.1

新特性

  • slow log 增加队列等待时间统计 #1997 @wangshao1

  • 主从复制使用 ReplicationID #1951 @Mixficsol

  • WAL 以 disablewal 命令方式支持动态关闭 #2015 @Mixficsol

  • flush 线程数和 compaction 线程数动态调整,合二为一 #2014 @Tianpingan

  • 升级了 RocksDB 版本到 v8.3.3 #1999 @dingxiaoshuai123

  • 增加了 Macos 环境下配置 Pika 的使用方法文档 #2003 @klboke

  • 新增周期性打印工作队列的长度功能,在队列阻塞的时候可以快速定位问题 #1978 @Tianpingan

  • 新增利用一个 pika_exporter 检测整个集群的指标 #1953 @chenbt-hz

  • 实现在 K8s 环境上 Pika 服务的自动注册,在启动时自动注册,从而实现集群的自组织 #1931 @machinly

Bugfix

  • 减少了 exporter 非必要的日志打印,降低 CPU 利用率 #1945 @Mixficsol

  • 升级了 sentinel 机制,对于掉线的主节点,进行逻辑删除 #1949 @Mixficsol

  • 调整 rate_limit 参数,修复压测时出现 RPS 为 0 的情况 #2009 @chejinge

  • 修复了 INFODATA 命令中对于遍历数据文件时出现空路径的逻辑判断 #1996 @Mixficsol

  • 完善了文档的一些部分缺失的描述 #1962 @baerwang

  • 使用 make -j 提高构建速度 #1933 @xiezheng-XD

  • 解决了 Codis 在线上出现大毛刺的问题 #2016 @chejinge

  • 修复了 Macos 环境下编译使用 tools 导致编译不过的问题 #2011 @A2ureStone

v3.5.0

重大特性

1.去除 Rsync

  1. 去除 Rsync
  2. 实现断点续传,速率限制,文件检验
  3. Pika 主从同步时,进行 master run_id 的检验

2.兼容更多 Redis 命令

  1. 支持 UNLINK 命令
  2. 支持 INFO COMMANDSTATS 命令
  3. 支持 HELLO、SETNAME 命令
  4. 支持 BLPOP、BRPOP 命令
  5. 新增 Pika 原创命令 DISKRECOVERY

3.RocksDB 版本升级和分级压缩

  1. 升级 RocksDB 版本到 v8.1.1
  2. 实现 RocksDB 分级压缩
  3. 新增 RocksDB 缓存配置项 num-shard-bits 能够从配置文件中读取

4.支持 Blobdb

  • 在 v3.5.0 版本我们支持 BlobDB KV 分离

    #1456

    @lqxhub

  1. 支持 BlobDB KV 分离

5.基于 Codis 的集群模式

  1. 引入 Codis 到 Pika
  2. 引入 Codis 的 CI
  3. 支持 Codis 迁移 slot 命令
  4. 新增是否在 reload 的 slotmigrate 状态

6.可观测性

  1. 新增 Pika 可观测系统 pika_exporter
  2. 新增网络 I/O 流量监控指标
  3. 新增命令统计耗时指标
  4. 新增 estimate_pending_compaction_bytes 度量来分析碎片率指标
  5. 新增 RocksDB 指标

7.云原生部署

  • 在 v3.5.0 版本我们实现了一个 pika-operator mvp 版本,主要实现了 Pika 单实例服务在 K8s 上的快速部署

    #1243 #1330 #1347

    @machinly

  1. 实现 Pika 单例服务在 K8s 上快速部署
  2. 实现了在 MiniKube 环境中部署 Pika
  3. 给 pika-operator 添加 E2E 测试

8.跨平台编译

  1. 支持 MacOS 平台

9.多平台 CI、Go 集成测试、TCL 单元测试、PythonE2E 测试、CTest 单元测试

  1. 新增 CentOS 环境下的 CI
  2. 新增 MacOS 环境下的 CI
  3. 新增 E2E 测试框架
  4. 新增在 Github CI Workflow 中添加 CMake 编译环境
  5. 新增在 TCL 脚本中 populate 方法模拟 Redis debug populate 方法,用以填充测试数据
  6. 新增单测启动脚本
  7. 新增在 blackwidow 中添加 cmake 文件,添加对 blackwidow 的单元测试
  8. 使用 CTest 进行单元测试
  9. 移植 Redis 测试脚本
  10. 在 CI 流程中添加新的任务,以验证 Pika 是否能在 CentOS 系统上成功编译

新增功能

改进

Bug 修复

注意事项