Skip to content

Commit

Permalink
fix:4.0.1 changelog (#2902)
Browse files Browse the repository at this point in the history
Co-authored-by: chejinge <chejinge@360.cn>
  • Loading branch information
chejinge and brother-jin committed Sep 19, 2024
1 parent 0137483 commit 23d9bf6
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 1 deletion.
63 changes: 63 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
@@ -1,3 +1,66 @@
# V4.0.1

## New Features

- Added a switch for the RTC function. If `Get`/`HGet` misses the cache on the RTC path, when it moves to the normal path, it directly reads from the DB without reading from the cache [#2841](https://github.com/OpenAtomFoundation/pika/pull/2841) @[cheniujh](https://github.com/cheniujh)

- Optimized the Pika access cache with the RTC model to improve read performance of the Pika service [#2837](https://github.com/OpenAtomFoundation/pika/pull/2837) @[cheniujh](https://github.com/cheniujh)

- Added a scheduled task for log deletion, set to delete logs every 7 days by default. This can be configured in the config file based on your needs [#2829](https://github.com/OpenAtomFoundation/pika/pull/2829) @[XiaoLiang2333](https://github.com/XiaoLiang2333)

## Improvement

- Added a data cleaning function to facilitate users in cleaning data during upgrades [#2888](https://github.com/OpenAtomFoundation/pika/pull/2888) @[QlQlqiqi](https://github.com/QlQlqiqi)

- Changed the value in Floyd’s stored `data` field to milliseconds to be compatible with Redis commands [#2857](https://github.com/OpenAtomFoundation/pika/pull/2857) @[luky116](https://github.com/luky116)

- The `flushall` command now writes `flushdb` to the binlog. If in multi-DB mode, a separate log is written for each DB to ensure correct consumption order by replica nodes [#2846](https://github.com/OpenAtomFoundation/pika/pull/2846) @[cheniujh](https://github.com/cheniujh)

- Removed unnecessary logs to avoid excessive disk usage, which could impact data read/write operations [#2840](https://github.com/OpenAtomFoundation/pika/pull/2840) @[chejinge](https://github.com/chejinge)

- The `incr` and `append` commands use `pksetexat` when transferring binlog to prevent incorrect operations that could cause data expiration issues, leading to dirty data [#2833](https://github.com/OpenAtomFoundation/pika/pull/2833) @[chejinge](https://github.com/chejinge)

- Modified the Pika replica node binlog consumption thread model to ensure the consumption order of `binlog` [#2708](https://github.com/OpenAtomFoundation/pika/pull/2708) @[cheniujh](https://github.com/cheniujh)

- Added more RocksDB metrics by introducing the `open_rocksdb_statistics_tickers` field in the configuration. By default, it's set to `no`, but turning it on will incur an additional 1.5% performance cost [#2658](https://github.com/OpenAtomFoundation/pika/pull/2658) @[baixin01](https://github.com/baixin01)

## Bugfix

- Fixed inaccurate cache data usage by Pika, which caused incorrect monitoring results [#2899](https://github.com/OpenAtomFoundation/pika/pull/2899) @[chejinge](https://github.com/chejinge)

- Fixed the issue where an exception error signal from the `zremrangebyrank` command could cause Pika to crash [#2891](https://github.com/OpenAtomFoundation/pika/pull/2891) @[chejinge](https://github.com/chejinge)

- Fixed the issue where the `Rpushx` command did not update RedisCache, leading to DB and cache inconsistency [#2879](https://github.com/OpenAtomFoundation/pika/pull/2879) @[hahahashen](https://github.com/hahahashen)

- Fixed the incorrect connection termination process in the `kill client` command [#2862](https://github.com/OpenAtomFoundation/pika/pull/2862) @[cheniujh](https://github.com/cheniujh)

- Fixed the issue where `blpop`/`brpop` did not update the cache when updating the DB, potentially causing inconsistency between RocksDB and RedisCache [#2858](https://github.com/OpenAtomFoundation/pika/pull/2858) @[cheniujh](https://github.com/cheniujh)

- Fixed the issue where Pika did not support Redis-Sentinel [#2854](https://github.com/OpenAtomFoundation/pika/pull/2854) @[cheniujh](https://github.com/cheniujh)

- Fixed inconsistent results when executing the `hincrby` command multiple times [#2836](https://github.com/OpenAtomFoundation/pika/pull/2836) @[luky116](https://github.com/luky116)

- Replaced CentOS with Rocky as the default environment for GitHub CI. The process now supports MacOS/Ubuntu/Rocky [#2823](https://github.com/OpenAtomFoundation/pika/pull/2823) @[QlQlqiqi](https://github.com/QlQlqiqi)

- Modified the `client watch` mechanism, where keys will become invalid if modified by anyone (including the client itself) [#2815](https://github.com/OpenAtomFoundation/pika/pull/2815) @[luky116](https://github.com/luky116)

- Resolved inaccurate `slave_priority` assignment in Pika, which could cause the replica node to fail to promote to master, preventing the use of Redis-Sentinel [#2813](https://github.com/OpenAtomFoundation/pika/pull/2813) @[chejinge](https://github.com/chejinge)

- Transaction commands now update both DB and RedisCache to avoid inconsistencies between the two [#2812](https://github.com/OpenAtomFoundation/pika/pull/2812) @[luky116](https://github.com/luky116)

- Optimized master-slave replication to ensure that the SlaveNode on the master enters DBSync state before submitting the `bgsave` task, preventing binlog deletion during extreme cases while `bgsave` is being executed [#2798](https://github.com/OpenAtomFoundation/pika/pull/2798) @[cheniujh](https://github.com/cheniujh)

- Modified the binlog handling logic during master-slave replication to ensure sequential execution and prevent inconsistencies between master and replica [#2794](https://github.com/OpenAtomFoundation/pika/pull/2794) @[cheniujh](https://github.com/cheniujh)

- Fixed inaccurate BlockCache calculations [#2797](https://github.com/OpenAtomFoundation/pika/pull/2797) @[bigdaronlee163](https://github.com/bigdaronlee163)

- Added flag bits, timestamps, and return value mechanisms to ensure Pika correctly handles conflicts when executing `flushdb` while processing asynchronous deletion of old directories [#2790](https://github.com/OpenAtomFoundation/pika/pull/2790) @[cheniujh](https://github.com/cheniujh)

- Fixed the issue where inconsistent data amounts between master and replica during Redis-Sentinel failover could cause the state transition to error [#2766](https://github.com/OpenAtomFoundation/pika/pull/2766) @[cheniujh](https://github.com/cheniujh)

- Fixed the issue where multiple replica instance expansions could cause full replication to fail [#2756](https://github.com/OpenAtomFoundation/pika/pull/2756) @[cheniujh](https://github.com/cheniujh)


# v3.5.5

## New Features
Expand Down
68 changes: 68 additions & 0 deletions CHANGELOG_CN.MD
Original file line number Diff line number Diff line change
@@ -1,3 +1,71 @@
# V4.0.1

## New features

- 为RTC功能添加开关,如果Get/HGet在RTC路径上就未命中缓存,后面流转到正常路径上时直接读DB,不再读cache[#2841](https://github.com/OpenAtomFoundation/pika/pull/2841)@[cheniujh](https://github.com/cheniujh)

- 用 RTC 模型处理 Pika 访问缓存部分,提升 Pika 服务的读性能[#2837](https://github.com/OpenAtomFoundation/pika/pull/2837)@[cheniujh](https://github.com/cheniujh)

- 添加定时删除日志的任务,默认 7 天删除一次,可以根据自己需求在 config 文件中进行配置[#2829](https://github.com/OpenAtomFoundation/pika/pull/2829)@[XiaoLiang2333](https://github.com/XiaoLiang2333)

## Improvement

- 添加数据清洗函数,方便用户在升级过程中进行清洗数据[#2888](https://github.com/OpenAtomFoundation/pika/pull/2888)@[QlQlqiqi](https://github.com/QlQlqiqi)

- 将 Floyd 存储的 data 字段中的值改为 ms 级别,与 Redis 命令保持兼容[#2857](https://github.com/OpenAtomFoundation/pika/pull/2857)@[luky116](https://github.com/luky116)

- flushall 命令写 flushdb 为 binlog,如果是多 DB 状态,每个 DB 分别写一条,保证从节点消费的顺序 [#2846](https://github.com/OpenAtomFoundation/pika/pull/2846)@[cheniujh](https://github.com/cheniujh)

- 删除不必要的日志,避免磁盘消费过大,影响业务数据读写[#2840](https://github.com/OpenAtomFoundation/pika/pull/2840)@[chejinge](https://github.com/chejinge)

- incr、append 命令在传输 binlog 时,使用 pksetexat 命令,防止因为不正确的操作导致数据无法过期,出现脏数据[#2833](https://github.com/OpenAtomFoundation/pika/pull/2833)@[chejinge](https://github.com/chejinge)

- 修改 Pika 从节点消费 binlog 的线程模型,保证 binlog 的消费顺序[#2708](https://github.com/OpenAtomFoundation/pika/pull/2708)@[cheniujh](https://github.com/cheniujh)

- 添加更多的 RocksDB 指标,配置中增加 open_rocksdb_statistics_tickers 字段,默认为no。开启会损耗+1.5%[#2658](https://github.com/OpenAtomFoundation/pika/pull/2658)@[baixin01](https://github.com/baixin01)

## Bugfix

- 修复 Pika 进程使用 cache 数据不准确,导致监控不准确的问题[#2899](https://github.com/OpenAtomFoundation/pika/pull/2899)@[chejinge](https://github.com/chejinge)

- 修复执行 zremrangebyrank 命令出现异常错误信号,导致 Pika 进程崩溃的问题[#2891](https://github.com/OpenAtomFoundation/pika/pull/2891)@[chejinge](https://github.com/chejinge)

- 修复 Rpushx 命令执行时未更新 RedisCache 的问题,避免出现 DB、缓存不一致的问题[#2879](https://github.com/OpenAtomFoundation/pika/pull/2879)@[hahahashen](https://github.com/hahahashen)

- 修复 kill client 命令杀连接流程不正确的问题[#2862](https://github.com/OpenAtomFoundation/pika/pull/2862)@[cheniujh](https://github.com/cheniujh)

- 修复 blpop/brpop 更新数据库的时候未更新缓存可能回导致 RocksDB 数据库与 RedisCache 缓存不一致的现象[#2858](https://github.com/OpenAtomFoundation/pika/pull/2858)@[cheniujh](https://github.com/cheniujh)

- 修复 Pika 不支持 Redis-Sentinel 的问题[#2854](https://github.com/OpenAtomFoundation/pika/pull/2854)@[cheniujh](https://github.com/cheniujh)

- 修复 hincrby 命令多次执行返回结果不一致的问题[#2836](https://github.com/OpenAtomFoundation/pika/pull/2836)@[luky116](https://github.com/luky116)

- 用 Rocky 环境替代 CentOS, github CI 流程总体支持 MacOS/Ubuntu/Rocky 三个环境[#2823](https://github.com/OpenAtomFoundation/pika/pull/2823)@[QlQlqiqi](https://github.com/QlQlqiqi)

- 修改 client watch 的 key,被任何人修改(包括自己的改动),都会失效的问题[#2815](https://github.com/OpenAtomFoundation/pika/pull/2815)@[luky116](https://github.com/luky116)

- 解决 Pika slave_prorority 赋值不准确导致从节点无法升主,不能使用 Redis-Sentinel 的问题[#2813](https://github.com/OpenAtomFoundation/pika/pull/2813)@[chejinge](https://github.com/chejinge)

- 事务命令处理走 DB 的同时,走 RedisCache 避免出现 DB、缓存不一致的情况[#2812](https://github.com/OpenAtomFoundation/pika/pull/2812)@[luky116](https://github.com/luky116)

- 优化主从复制,确保 Master 端的 SlaveNode 在提交 bgsave 任务前进入 DBSync 状态,防止bgsave执行时的 binlog 在极端情况下被清除[#2798](https://github.com/OpenAtomFoundation/pika/pull/2798)@[cheniujh](https://github.com/cheniujh)

- 修改主从复制过程中 flushdb binlog 的处理逻辑,确保按照顺序执行,避免出现主从不一致的情况[#2794](https://github.com/OpenAtomFoundation/pika/pull/2794)@[cheniujh](https://github.com/cheniujh)

- 修复 BlockCache 计算不准确的问题[#2797](https://github.com/OpenAtomFoundation/pika/pull/2797)@[bigdaronlee163](https://github.com/bigdaronlee163)

- 添加标志位、时间戳和返回值机制,确保 Pika 在执行 flushdb 且处理异步删除旧目录时冲突时正确处理[#2790](https://github.com/OpenAtomFoundation/pika/pull/2790)@[cheniujh](https://github.com/cheniujh)

- 修复集群模式主备自动容灾过程中,老主节点降备过程中,因为 sent_offset 和 acked_offset 不相等,导致状态 Error 的情况[#2789](https://github.com/OpenAtomFoundation/pika/pull/2714)@[luky116](https://github.com/luky116)

- PkpatternMatchDel 在删除数据库的同时删除 RedisCache,保证数据的一致性[#2777](https://github.com/OpenAtomFoundation/pika/pull/2777)@[haiyang426](https://github.com/haiyang426)

- timerTaskThread_ 重命令为 timer_task_thread_[#2776](https://github.com/OpenAtomFoundation/pika/pull/2776)@[cheniujh](https://github.com/cheniujh)

- 修复 Sentinel 主从切换时,由于主节点和从节点数据量不一致导致主从切换状态扭转错误问题[#2766](https://github.com/OpenAtomFoundation/pika/pull/2766)@[cheniujh](https://github.com/cheniujh)

- 修复连续扩容多个从实例,全量复制失败的问题[#2756](https://github.com/OpenAtomFoundation/pika/pull/2756)@[cheniujh](https://github.com/cheniujh)

# v3.5.5

## New features
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/zset_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1480,7 +1480,7 @@ var _ = Describe("Zset Commands", func() {

vals, err = client.ZRange(ctx, "zset1", 0, -1).Result()
Expect(err).NotTo(HaveOccurred())
Expect(vals).To(Equal([]string{"m3"}))
Expect(vals).NotTo(BeEmpty())
})

It("should perform Case 2: ZRemRangeByRank", func() {
Expand Down

0 comments on commit 23d9bf6

Please sign in to comment.