跳到主要内容

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

· 阅读需 7 分钟
陈俊华
360

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

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

1 新特性

  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

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

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

关键 PR:

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

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

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

关键 PR:

2 改进列表

3 Bug 修复

4 社区

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

![图片](data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='1px' height='1px' viewBox='0 0 1 1' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0'%3E%3Cg transform='translate(-249.000000, -126.000000)' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

img

微信扫一扫 关注该公众号