写点什么

What's new in PikiwiDB(Pika) v3.5.4

作者:apache/dubbo-go
  • 2024-05-16
    北京
  • 本文字数:2554 字

    阅读完需:约 8 分钟

What's new in PikiwiDB(Pika) v3.5.4

PikiwiDB(Pika) 社区非常荣幸地宣布,我们的最新 v3.5.4 正式生产可用版本现已发布。


v3.5.4 解决了历史遗留的 bug,对 PikiwiDB(Pika) 的一些遗留 bug 进行修复和优化,旨在打造出一个高稳定性的版本。本次的重点优化主要包括,PikiwiDB(Pika)支持动态调整限速参数、增强 PikiwiDB(Pika) 的客观测性指标、 磁盘 IO 限速支持读限速及写限速等。

1 新特性

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

自 v3.5.0 版本开始,PikiwiDB(Pika) 服务摒弃了通过子进程内使用原来 rsync 工具进行主从全量同步的逻辑,在 PikiwiDB(Pika) 内部以线程方式【称作 rsync 线程】自行实现了新的全量同步逻辑,避免因为外部进程不可控引起的主从同步问题,根据 360 内部 Pika 线上大规模集群运维的经验,在 PikiwiDB(Pika) 主从进行全量同步的过程中,如果遇到某些不利的外部因素,如网络波动,硬件故障(如网卡降速导致的主从网卡速率不匹配)等,可能引起 rsync 线程请求持续超时(PikiwiDB(Pika) 内置 rsync 模块用于全量同步阶段的文件传输),且超时重试所发出的包可能引发更大的网络信道负担。此时对于运维人员来说,如果能动态调整 rsync 请求的超时时间和 rsync 传输的速率上限,不仅意味着对全量同步阶段控制粒度的进一步细化,更大大降低了在该场景下的运维处置难度。


关键 PR:


https://github.com/OpenAtomFoundation/pika/pull/2633

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

PikiwiDB(Pika) 是通过 Info 命令采集数据至 Pika-Exporter,展示到 Grafana 界面上的,目前界面上部分数据是没有展示的,如 keys 的数量,本次将执行 info keyspace 的结果展示到监控界面,用户可以通过这个指标来查看存储的量级等。


关键 PR:


https://github.com/OpenAtomFoundation/pika/pull/2603

Pika 磁盘 IO 限速参数支持 OnlyRead、OnlyWrite、ReadAndWrite,默认支持 OnlyWrite

自 3.5.0 版本开始,PikiwiDB(Pika) 服务可以通过调整 rate-limit 参数实现写限速,防止在网卡质量不高的情况下磁盘 IO 过重导致服务不可用,或者 binlog 阻塞的情况发生。360 内部 Pika 线上大规模集群运维的经验,在 PikiwiDB(Pika) 实例的网卡较差情况下,也需要对读实例进行限速,本次修改支持读、写限速,默认是写限速,调整 config 配置中的 rate-limiter-mode 可以设置为读限速,或者同时读写限速。


关键 PR:


https://github.com/OpenAtomFoundation/pika/pull/2599

2 改进列表

slotmigrate 添加 go test。


https://github.com/OpenAtomFoundation/pika/pull/2576


INFO 命令耗时优化,降低查磁盘频率,避免因为数据采集调用 info 命令时查磁盘太过频繁导致服务性能下降。


https://github.com/OpenAtomFoundation/pika/pull/2554


对五种基本数据类型命令增加 Redis tcl 测试。


https://github.com/OpenAtomFoundation/pika/pull/2527

3 Bug 修复

修复使用 Pika Exporter 时可能会出现 slots 分配不均衡的问题。


https://github.com/OpenAtomFoundation/pika/pull/2651


修复 Codis dashboard 不能正确更新 master 实例状态的问题。


https://github.com/OpenAtomFoundation/pika/pull/2650


修复 Redis 事务 binlog 解析失败导致的主从同步异常问题。


https://github.com/OpenAtomFoundation/pika/pull/2642


修复 Pika Expoter 启动时不带参数导致启动失败问题。


https://github.com/OpenAtomFoundation/pika/pull/2640


修复使用 Pika Operater 拉起集群 Codis-proxy panic 的问题。


https://github.com/OpenAtomFoundation/pika/pull/2633


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


https://github.com/OpenAtomFoundation/pika/pull/2614


修复变量未初始化导致 cache 启动失败的问题。


https://github.com/OpenAtomFoundation/pika/pull/2613


修复 userpass 和 userblacklist 动态修改参数功能异常问题。


https://github.com/OpenAtomFoundation/pika/pull/2600


修复 scard sscan 结果不一致的问题。


https://github.com/OpenAtomFoundation/pika/pull/2596


修复当 max-rsync-parallel-num 大于 4,slave 会在主从复制时 coredump 的问题。


https://github.com/OpenAtomFoundation/pika/pull/2595


调整不常用的线程池线程数,避免因为空跑导致性能损耗。


https://github.com/OpenAtomFoundation/pika/pull/2590


修复 Pika 事务边缘测试 case 不通过的问题。


https://github.com/OpenAtomFoundation/pika/pull/2586


将 cache-model 修改成 cache-mode。


https://github.com/OpenAtomFoundation/pika/pull/2585


修复使用 info keyspace 后,info all 死锁的问题。


https://github.com/OpenAtomFoundation/pika/pull/2584


修复因修改 zsetscorekey comparator impl 字典序比较熟顺序,导致 353 352 极端场景不兼容的问题。


https://github.com/OpenAtomFoundation/pika/pull/2583


修复 compact 死锁的问题。


https://github.com/OpenAtomFoundation/pika/pull/2581


Slotmigrate 添加 go test。


https://github.com/OpenAtomFoundation/pika/pull/2576


更新 Pika Operater 使用的 pika 版本。


https://github.com/OpenAtomFoundation/pika/pull/2572


修复 config rewrite 后 blockcache 数值异常的问题。


https://github.com/OpenAtomFoundation/pika/pull/2561


修复 slotmigrate 动态修复后值错误的问题。


https://github.com/OpenAtomFoundation/pika/pull/2548


修复 spop 可能会出现主从数据不一致的问题。


https://github.com/OpenAtomFoundation/pika/pull/2541


修复 CloseFd(it->second[i]) 出现越界的问题。


https://github.com/OpenAtomFoundation/pika/pull/2539


修复 Flushall 和 FlushDB 死锁的隐患,并删除 FlushSubDB 接口。


https://github.com/OpenAtomFoundation/pika/pull/2533


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


https://github.com/OpenAtomFoundation/pika/pull/2507

4 社区

PikiwiDB (Pika) 开源社区热烈欢迎您的参与和支持。如果您有任何问题、意见或建议,可通过以下渠道联系我们:


  1. 加入 PikiwiDB (Pika) 官方微信群:搜索微信助手账号  "PikiwiDB" 

  2. 参加 OSPP 2024 开源之夏 https://summer-ospp.ac.cn/org/orgdetail/7e52ef27-ff02-457d-9bc3-cdb9c8b69cef?lang=zh


发布于: 刚刚阅读数: 3
用户头像

dubbogo社区 2019-08-25 加入

dubbogo社区官方账号,发布 github.com/apache/dubbo-go 各种最新技术趋势、项目实战和最新版本特性等技术干货。

评论

发布
暂无评论
What's new in PikiwiDB(Pika) v3.5.4_redis_apache/dubbo-go_InfoQ写作社区