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) 开源社区热烈欢迎您的参与和支持。如果您有任何问题、意见或建议,可通过以下渠道联系我们:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源日报 | 树莓派冲刺IPO;OSI即将给出开源AI的定义;GPT-4o让OpenAI掌门人爱不释手;腾讯AI靠开源追进度?
欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.5.16 今日要点 OSI 即将给出开源 AI 的定义 OSI 小组自 2022 年以来就启动了一项深入的全球倡议,让主要参与者(包括企业、学术界、法律界以及代表更广泛民间社会的组织和非营利组织)参与进来,共同起草 Open Source AI Definition。 经过了几个月的会议及草案版本和审查。 OSI 表示,他们已经接近 Open Source AI Definition 的稳定版本;在接下来的几个月里,他们计划在北美、欧洲、非洲、亚太地区和拉丁美洲举办研讨会路演,以征求对草案的进一步意见。目标是能够在 10 月于北卡罗来纳州罗利举行的 All Things Open 上提出该定义的稳定版本。 Java SE 2024 年春季路线图 Oracle 发布了Java SE 2024 年春季路线图,再次确认将对 Java/JDK 11 的支持延长至 2032 年 1 月,并免除 Java 11 支持的延期支持费用。此延期为依赖 Oracle Java 11 的 Oracle 客户提供了至少八年的支持和更...
- 下一篇
地理数据可视化的神奇组合:Python和Geopandas
本文分享自华为云社区《Python与Geopandas:地理数据可视化与分析指南》,作者:柠檬味拥抱。 地理数据可视化在许多领域都是至关重要的,无论是研究地理空间分布、城市规划、环境保护还是商业决策。Python语言以其强大的数据处理和可视化库而闻名,而Geopandas作为其地理信息系统(GIS)领域的扩展,为处理地理空间数据提供了方便的工具。本文将介绍如何使用Python和Geopandas进行地理数据可视化,并提供实用的代码示例。 1. 准备工作 在开始之前,确保已经安装了Python和Geopandas库。可以使用pip来安装Geopandas: pip install geopandas 2. 加载地理数据 首先,我们需要加载地理数据。Geopandas支持多种地理数据格式,包括Shapefile、GeoJSON、Geopackage等。在本示例中,我们将使用一个Shapefile格式的地图数据。 import geopandas as gpd # 读取Shapefile格式的地图数据 world = gpd.read_file(gpd.datasets.get_pa...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能