Releases: OpenAtomFoundation/pika
Releases · OpenAtomFoundation/pika
v3.1.1
Bug修复
- 修复配置文件中配置了compact-cron但是不生效的问题
- 修复同步时第一个binlog文件头部被填充了0x20,再读取这个文件时解析可能导致崩溃的问题
优化 & 新特性:
- 代码层面优化了主从同步状态机,提升了同步的效率
- 移除了submodule下的protobuf库,编译的时候还是用系统的protobuf
- 新增dbslaveof命令用来指定某个db的binlog偏移量进行同步(多db版本部分命令变化文档请参考Pika3.1.0多库版命令、参数变化参考)
注意事项
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika3.1.0版本不再支持双主
- pika3.1.0版本使用pb协议进行内部通信,不能直接和之前的版本建立主从关系,由低版本升级到pika3.1.0可以参照wiki进行升级(如何升级到Pika3.0、如何升级到Pika3.1)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
- 为了保证服务的稳定,建议所有用户升级至3.0.9
- 3.0仍会继续维护,2.X不再维护,7月彻底停止对2.X的支持
v3.0.10
Bug修复:
- 修复BinlogParser未经初始化导致解析同步出错的问题
- 修复同步时第一个binlog文件头部被填充了0x20,再读取这个文件时解析可能导致崩溃的问题
注意事项
- pika3.0.10暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
- 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.10,2.X用户升级至2.3.6或3.0.10
v3.1.0
Bug修复
- 修复了编译无tcmalloc时同步可能无法创建的问题
优化 & 新特性:
- 支持多db(多db版本部分命令变化文档请参考Pika3.1.0多库版命令、参数变化参考)
注意事项
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika3.1.0版本不再支持双主
- pika3.1.0版本使用pb协议进行内部通信,不能直接和之前的版本建立主从关系,由低版本升级到pika3.1.0可以参照wiki进行升级(如何升级到Pika3.0、如何升级到Pika3.1)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
- 为了保证服务的稳定,建议所有用户升级至3.0.9
- 3.0仍会继续维护,2.X不再维护,7月彻底停止对2.X的支持
v3.0.9
优化 & 新特性:
- 对ZSet数据结构的索引信息进行压缩处理,同等数据量条件下大幅度降低磁盘和内存占用
注意事项
- pika3.0.9暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
- 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.9,2.X用户升级至2.3.6或3.0.9
v3.0.8
Bug修复:
- 修复大压力场景下执行Monitor命令的连接会断开的问题
- 修复Set命令中的EX、PX遇到非法参数时返回结果和Redis不一致的问题
- 修复slowlog-write-errorlog参数无法将来自同步的慢操作记录到日志的问题
- 修复Set命令中的PX、EX及Setex、PSetex命令在主从同步延迟较大时会造成相关Key超时时间不一致的问题
优化 & 新特性:
- info keyspace增加统计耗时展示
- compact-cron增加星期配置,格式请参考配置文件
- info keyspace和compact不再允许同时执行,避免同时执行造成数据体积暂时膨胀较大问题
注意事项
- pika3.0.8暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
- 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.8,2.X用户升级至2.3.6或3.0.8
v3.0.7
Bug修复:
- 修复HMGet已过期的key时行为与Redis不一致的问题
- 修复maxmemory配置项的值太大会造成展示溢出的问题
- 修复从库关闭readonly情况下执行bgsave/flushall可能导致整个实例锁死的问题
- 修复了某一客户端执行耗时极长操作(例如keys *)时可能导致连接在对应线程上的其他客户端全部阻塞的问题
优化 & 新特性:
- 优化网络库redis协议解析代码,增加代码可读性
- 提高pika binlog parser的处理性能,支持批量binlog的解析
- 对网络库进行改造,并且添加了线程池用于处理写db以及写binlog等耗时操作,有效降低延迟,部分接口性能提升5%~20% (配置文件中新添加thread-pool-size项用于控制线程池大小)
注意事项
- pika3.0.7暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
- 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.7,2.X用户升级至2.3.6或3.0.7
v3.0.6
Bug修复:
- 修复了monitor中pika不显示db号的问题
- 修复了从库同步异常但可能状态显示仍为up的问题
- 修复了执行expireat key 0时pika行为和redis不一致的问题
- 修复了nemo_to_blackwidow迁移遇到key数量特别巨大的场景进度展示会溢出的问题
- 修复了执行slaveof ip port force时如果恰好正在执行zrevrange可能导致Pika崩溃的问题
- 修复了info中slave_read_only状态值不为0/1而为yes/no可能会影响部分监控系统的数据获取的问题
优化 & 新特性:
- config get允许通过*进行模糊匹配
- 对binlog写逻辑进行优化,效率有一定提高
- 对zrevrange,zrevrangebyscore进行了优化,性能有一定提高
- info keyspace 1 现在能够统计带有expire属性的key并进行展示
- 为了适应越来越多的万兆环境,调整db-sync-speed参数,上限从125MB提高到1024MB
- 重写了config rewrite,目前功能已与redis一致,之前部分参数不能正常rewrite的问题也已修复
- 对引擎层进行优化,对不同的操作进行统计,在合适的时候触发小范围的key级别compact,尽可能的降低磁盘碎片率及碎片对性能的影响,目前相关参数max-cache-statistic-keys,small-compaction-threshold允许通过config set动态调整,该功能默认关闭
注意事项
- pika3.0.6暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
v3.0.5
Bug修复:
- 修复config set对某些配置项允许设置非法参数的问题
- 修复mset和msetnx命令某些场景下只能部分同步到从库的问题
- 修复TTL命令在某些场景下可能会返回已经失效key过期时间的问题
- 修复mget和hmget命令在对应value为空串时返回结果和redis不一致的问题
- 修复执行appen, decrby, incrby, incrbyfloat会清除对应key过期属性的问题
- 修复某些场景下执行pubsub命令会阻塞Pika一个线程直到重启才可恢复的问题
优化 & 新特性:
- 双主模式下支持通过slaveof no one来断开同步
- 优化部分多数据结构的接口,效率有不同程度的提升
- 取消read-only参数、命令, 增加slave-read-only参数,作用与redis完全一致
- 通过info keyspace 1统计key数量时将实例中可淘汰key数量也进行统计,方便观察
- 对引擎层进行优化,对不同的操作进行统计,在合适的时候触发小范围的key级别compact,尽可能的降低磁盘碎片率及碎片对性能的影响,实验性功能,默认关闭
注意事项
- pika3.0.5暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
v3.0.4
Bug修复:
- 修复Pika在进行同步的过程中存在内存泄漏的问题
- 修复配置文件中多个配置项设置过大值可能导致溢出的问题
优化 & 新特性:
- 新增pkscanrange和pkrscanrange命令,可以正序和逆序对不同数据结构的Key进行Scan
- 新增pkhscanrange和pkhrscanrange命令,可以正序和逆序对指定hash table中的field/value进行Scan
- 新增命令文档可以参考(差异化命令)
注意事项
- pika3.0.4暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
v3.0.3
Bug修复:
- 修复命令执行次数的统计功能会区分命令大小写的问题
- 修复某些场景下执行monitor命令会造成该连接断开的问题
- 修复引擎全量Compact执行完毕前Pika可能无法正常关闭的问题
- 修复一次MSet超过10000个key会造成一个线程阻塞的问题
优化 & 新特性:
- 暴露了更多rocksdb参数,具体可以参考pika.conf文件
- 添加是否将慢日志写入到pika.ERROR的开关, 该开关默认关闭
- nemo_to_blackwidow工具添加-b参数用来控制多数据结构每次迁移成员的数量,部分场景下迁移性能提高极大,具体可以参考wiki
注意事项
- pika3.0.3暂不支持pika-hub
- pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
- pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
- 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。