CHANGELOG.MD
Introduced fast/slow thread pools in the command scheduling layer and implemented cross-pool resource borrowing mechanism, improving resource utilization efficiency and system observability under unbalanced load conditions. Added related monitoring metrics, dynamic configuration capabilities, and INFO/CONFIG support, enabling finer-grained control over thread pool execution
Integrated BRAFT (distributed consensus component) into the codebase, implementing Raft strong consistency in PikiwiDB. This differs from the previous eventual consistency model, ensuring high availability of user data
Added timing statistics for command processing at different stages, including Redis cache read/update, binlog writing, and storage processing time #3036@wangshao1
Simplified log positioning and added time consumption statistics, updated monitoring information exposure #3044@wangshao1
Added Auth commands to the management command thread pool to avoid connection failure when the main thread pool is blocked #3048@Mixficsol
After a client closes the connection, the server skips requests received on this connection during processing to avoid request blocking #3111@wangshao1
Fixed issues caused by inconsistent data in some interfaces #3034@Mixficsol
Fixed errors in the configuration file for the Redis-cache threshold limits #3034@Mixficsol
Fixed the issue of codis-dashboard not updating metadata after Pika-slave node recovery #3038@wangshao1
Fixed parsing failure of info replication master ip:port #3038@wangshao1
Fixed inconsistencies in Append command behavior in cache and database #3039@Mixficsol
Configured max-key-size-in-cache parameter for String type keys to set the maximum key size in RedisCache in the config file #3043@Mixficsol
Configured cache-value-item-max-size parameter for Set, List, and Zset types to set the maximum number of elements in RedisCache in the config file #3043@Mixficsol
Fixed incorrect Codis master-slave switch issue #3048@Mixficsol
Updated Codis, Pika, and Pika_exporter versions and corrected version time record method, Pika build time now uses the Make compile time and adjusted to UTC time standard #3049@Mixficsol
Fixed inaccurate RedisCache maximum storage range #3064@Mixficsol
Added correct admin-cmd-list loading function in the configuration file #3076@Mixficsol
In pipeline mode, moved auth commands and subsequent commands in the Pipeline to command thread pool #3098@Mixficsol
Fixed ZRemrangebylex and zremrangebyscore argument errors #3098@chenbt-hz
Fixed RedisCache read interfaces without locks, which could cause data race during rehash #3088@wangshao1
Fixed occasional core dump when connecting to Pika via telnet #3099@Mixficsol
Fixed occasional crashes when executing getrange and setrange multiple times #3106@YuCai18
Fixed issue of accumulating close_wait state connections after closing connections in Pika when processing long-duration requests, preventing new connections from being accepted once the connection limit is reached #3089@wangshao1
Fixed Zadd command returning inconsistent values when adding the same member multiple times in a single line #3108@YuCai18
Fixed issue where requirepass was non-empty but connections could still be made with any password #3113@YuCai18
Removed irrelevant log printing to save disk resources #3119@YuCai18
Fixed PHP client issue where spop command without the second parameter returned inconsistent values with Redis #3129@wangshao1
Optimized Pika slow request logs, added statistics for queuing delays caused by too many pipeline requests #3142@wangshao1
Removed OBD-compact configuration to avoid affecting the 3.5 branch self-compiling versions #3125@chejinge
After the Pika slave instance executes slaveof no one to remove the replication relationship with the master node, the slaveof information is persisted into the configuration file. #2973 @cheniujh
Added support for backup and recovery in master-slave mode for Pika-Operator. #2968 @buzhimingyonghu
Added the log-net-activities parameter in the configuration file to dynamically enable or disable the logging of certain connection-related activities. This can be adjusted with config get/set. #2964 @cheniujh
Added the repl_connect_status metric to Pika info and integrated it into pika_exporter to facilitate monitoring of the replication status. #2961 @cheniujh
Upgraded kubeblocks to version 0.9, improving and optimizing Pika-Operator to simplify code and support instance scale-down. #2860 @XiaoLiang2333
Pika-Operator now supports starting in master-slave mode. See the README document for more details. #2903 @XiaoLiang2333
Added keyspace_hits and keyspace_misses metrics to pika_exporter, enabling users to monitor key hit rates. #2579 @chenbt
RedisCache now avoids storing large keys to prevent excessive memory usage or the eviction of frequently accessed hot keys, which could impact performance. #2557 @QlQlqiqi
Solved the problem of consistency between Pika database and cache #3034 #3037 @Mixficsol
The statistics on Pika time in each period, RocksDB execution time, lock acquisition time, Binlog write time, and Redis-Cache read time are increased #3036 @wangshao1
Fixed version information viewing for Pika, Pika_exporter, Codis components #3054 #3057 @Mixficsol
Added the Auth command to manage the command thread pool #3048 @Mixficsol
The maximum number of elements in RedisCache and the size of all Key types can be updated to the threshold of Redis-Cache by using the configuration file and dynamically modified by using the Config command #3043 #3047 @Mixficsol
Pika now supports dynamically modifying the max-subcompactions parameter to optimize the compact operation for L0 layers at runtime. #2965 @cheniujh
Improved the log-retention-time parameter to dynamically adjust the number of days for log retention. #2963 @cheniujh
Moved the Pika-Migrate code to the tools folder to simplify binary compilation in different environments for data migration. #2941 @chenbt-hz
Added Go tests for Pika complex data types and management commands to ensure service stability. [#2840](https://github.com/OpenAtomFoundation
Updated the actions/checkout in GitHub Actions workflow to v5 for enhanced security and performance. #2833 @baerwang
Added a new compact strategy in Pika to optimize write performance by prioritizing files unused for the longest time or files with the most deleted entries. #2557 @QlQlqiqi
Fixed the rpoplpush command cache update issue, which caused inconsistency between the database and cache. #2976 @cheniujh
Fixed compatibility issues between different versions of Pika-Exporter, which caused excessive logging and wasted disk resources. #2971 @buzhimingyonghu
Adjusted the log level of slowlog to INFO to address the issue of triple logging, which consumed excessive disk space. #2948 @buzhimingyonghu
Improved CI stability by resolving specific failure issues. #2937 @chejinge
Fixed an issue where Pika instances could not set administrator passwords independently. #2920 @buzhimingyonghu
Resolved a reference counter destructor issue in the epoll loop for std::shared_ptr in_conn objects, ensuring Pika connections are closed in a timely manner. #2904 @cheniujh
Fixed a cache inconsistency issue caused by the zpopmin command during deletion operations. #2892 @chejinge
Fixed that Dashboard frequently sends meta information change requests to the Proxy after the secondary node is offline, and added the subjective and objective offline logic of the secondary node #3049 @Mixficsol
Fixed the Slave Pika node restart without read traffic #3038 @wangshao1
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 @cheniujh
Optimized the Pika access cache with the RTC model to improve read performance of the Pika service #2837 @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 @XiaoLiang2333
Added a data cleaning function to facilitate users in cleaning data during upgrades #2888 @QlQlqiqi
Changed the value in Floyd’s stored data field to milliseconds to be compatible with Redis commands #2857 @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 @cheniujh
Removed unnecessary logs to avoid excessive disk usage, which could impact data read/write operations #2840 @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 @chejinge
Modified the Pika replica node binlog consumption thread model to ensure the consumption order of binlog #2708 @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 @baixin01
Fixed inaccurate cache data usage by Pika, which caused incorrect monitoring results #2899 @chejinge
Fixed the issue where an exception error signal from the zremrangebyrank command could cause Pika to crash #2891 @chejinge
Fixed the issue where the Rpushx command did not update RedisCache, leading to DB and cache inconsistency #2879 @hahahashen
Fixed the incorrect connection termination process in the kill client command #2862 @cheniujh
Fixed the issue where blpop/brpop did not update the cache when updating the DB, potentially causing inconsistency between RocksDB and RedisCache #2858 @cheniujh
Fixed the issue where Pika did not support Redis-Sentinel #2854 @cheniujh
Fixed inconsistent results when executing the hincrby command multiple times #2836 @luky116
Replaced CentOS with Rocky as the default environment for GitHub CI. The process now supports MacOS/Ubuntu/Rocky #2823 @QlQlqiqi
Modified the client watch mechanism, where keys will become invalid if modified by anyone (including the client itself) #2815 @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 @chejinge
Transaction commands now update both DB and RedisCache to avoid inconsistencies between the two #2812 @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 @cheniujh
Modified the binlog handling logic during master-slave replication to ensure sequential execution and prevent inconsistencies between master and replica #2794 @cheniujh
Fixed inaccurate BlockCache calculations #2797 @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 @cheniujh
Fixed the issue where inconsistent data amounts between master and replica during Redis-Sentinel failover could cause the state transition to error #2766 @cheniujh
Fixed the issue where multiple replica instance expansions could cause full replication to fail #2756 @cheniujh
Add a switch for the RTC model, allowing control over whether to enable the RTC model#2841@cheniujh
Use the RTC model to handle Pika access caching, improving Pika's read performance #2837 by#2837@cheniujh
For the incr and append commands, use the pksetexat command during binlog transmission to prevent data from not expiring due to incorrect operations, which could result in stale data#2833@chejinge
Add a scheduled task to delete logs, which by default deletes logs every 7 days. This can be configured in the config file based on your needs#2829@XiaoLiang2333
Move management commands out of the main thread to prevent blocking the main thread due to frequent or time-consuming management command calls#2727@chejinge
Organize Pika threads to avoid resource waste caused by starting unnecessary threads #2697@chejinge
Add the Pika benchmark tool to improve testing efficiency and generate visualized statistical charts.#2697@chejinge
Optimize master-slave replication to ensure that the SlaveNode on the Master side enters the DBSync state before submitting the bgsave task, preventing the binlog from being cleared during the bgsave execution in extreme cases#2798@cheniujh
Support dynamic adjustment of more RocksDB parameters, allowing users to adjust parameters based on different business scenarios to improve Pika's read and write performance#2728@cheniujh
Optimize the locking mechanism when applying binlog to reduce unnecessary lock contention#2773@cheniujh
Add TCL tests for the Geo data type and fix bugs encountered during testing#2753@saz97
Update the Pika Docker README, allowing deployment of the Pika service in Docker according to the README#2743@luky116
The Pkpatternmatchdel command now supports deleting Redis Stream data types#2723@wangshao1
Add a replication status metric repl_connect_status, making it easier for operations personnel to clearly determine the current master-slave replication status#2656@cheniujh
Refactor the master-slave replication thread model on the slave node to minimize binlog consumption blocking issues#2638@cheniujh
Add dynamic adjustment parameters for the RocksDB Compaction strategy, allowing users to adjust the Compaction strategy according to their business needs to reduce the performance impact of the Compaction operation #2538@wangshao1
Modify the timeout for the Pika automated test client to connect to the server, preventing test failures due to long disconnections#2863@cheniujh
Fixed an incorrect process in the kill client command for terminating connections #2862@cheniujh
Fix an issue where blpop/brpop would not update the RedisCache when updating the database, which could cause inconsistencies between the RocksDB and the RedisCache #2858@cheniujh
Fixed an issue where Pika did not support Redis-Sentinel.#2854@cheniujh
Modify the flushall logic to avoid multiple data cleanups during unified processing#2846@cheniujh
The GitHub CI (Continuous Integration) workflow will support three environments overall: macOS, Ubuntu, and Rocky#2823@QlQlqiqi
The PkPatternMatchDel command now deletes RedisCache entries along with the database entries, preventing inconsistencies between the RocksDB and the RedisCache. #2839@chejinge
Optimize the scope of read locks to avoid inconsistencies between master and slave data due to repeated binlog consumption #2818 by#2818@cheniujh
Modify the client watch key so that it becomes invalid if modified by anyone (including the client's own modifications)#2815@luky116
Modified the default value of slave_priority to prevent master-slave switch failures due to the absence of this setting by operations personnel.#2813@chejinge
The MULTI command now updates the cache simultaneously when updating the database, preventing issues with data retrieval.#2812@luky116
Fixed the issue of Sentinel role reversal errors during master-slave switching caused by data inconsistency between the master and slave nodes during the switch#2808@cheniujh
Modified the handling logic of flushdb binlog during master-slave replication to ensure sequential execution, preventing inconsistencies between master and slave data. #2808@cheniujh
Fix an issue where an error log would be output when executing slaveof no one#2800@cheniujh
Fixed inaccuracies in Pika block-cache information calculation, which resulted in incorrect memory usage calculations.#2797@bigdaronlee163
Modify the Handling Logic of FLUSHDB in Binlog During Master-Slave Replication to Ensure Sequential Execution and Prevent Inconsistencies Between Master and Slave#2794@cheniujh
Added flag, timestamp, and return value mechanisms to ensure correct handling of conflicts when executing flushdb and processing asynchronous deletion of old directories in Pika.#2790@cheniujh
Fix an issue where the PKPatternMatchDel command did not delete the iterator, which could result in incomplete data deletion in RocksDB#2786@wangshao1
Fix an issue where the min-blob-size parameter would fail to parse, causing errors in KV separation#2767@wangshao1
Fix the issue of incorrect state reversal during sentinel master-slave switch caused by data inconsistency between the master and slave nodes #2766 @cheniujh
Fix an issue where the Zverank command would calculate incorrectly, leading to erroneous return values#2763@chejinge
Fix an issue where the Pksetat command did not update the RedisCache while updating the database, which could cause inconsistencies between the RocksDB and the RedisCache.#2759@chejinge
Fixed an error occurring during data migration with Pika-port.#2758@guangkun123
Fix an issue where the RsynClient did not handle failures after an abnormal exit, resulting in incomplete data during full replication#2756@cheniujh
Fix an issue where Pika could not be expanded in batches#2746@cheniujh
Corrected uninitialized parameters in slotsscan and bgsave commands to ensure proper balancing.#2745@chejinge
Fix an issue where incorrect return values from the SlotMigrate command could interrupt data migration#2741@wangshao1
Pksetexat updates the RedisCache while updating the database to avoid inconsistencies between the RocksDB and the RedisCache.#2736 @longfar-ncy
Fix an issue where the RedisCache layer could cause inconsistencies between the RocksDB and the RedisCache due to not using the TTL parsed by the storage layer#2729@luky116
Fix an issue where Stream-type data could not be compacted by RocksDB, causing expired data to persist#2724@wangshao1
Fix an issue where ACL authentication might fail sporadically#2714@luky116
Fixed an issue where Pika cmdID assignment in the Cmd initialization function could cause data race during concurrent construction.#2692@gukj-spel
Fixed a potential race condition in Spop when writing binlog.#2674@cheniujh
Enhanced the full sync process to automatically retry after a timeout in multi-DB environments..#2667@cheniujh
Fixed a potential window crash issue under timeout scenarios in multi-DB master-slave environments.#2666@cheniujh
Fixed repeated unlocking issues in master-slave sync rate limiting logic.#2657@cheniujh
Added TCL tests for Pika Geo data type and fixed defects found during testing.#2753@saz97
Pika now supports compilation and packaging on the FreeBSD14 platform.#2711@lqxhub
Pika thread reorganization to avoid starting too many unnecessary threads, Threads are named for easier issue localization. #2697@chejinge
Mget supports multi-key query caching. Keys that miss are recorded and queried in the DB, improving Pika service read performance. #2675@chejinge
Codis supports the info command, allowing querying of Codis-proxy's info information. #2688@chienguo
Codis-proxy adds new monitoring metrics such as P99 and P95 response times. #2668@chejinge
Added Pika benchmarking metrics to improve benchmarking efficiency and output visualized statistical charts.#2663@luky116
Pika master-slave replication adds a new monitoring metric repl_connect_status to more clearly and accurately determine the current status of master-slave replication. #2638@cheniujh
Pika does not support duplicate keys of different types. Writing a duplicate key returns an invalid type error. #2609@Mixficsol
Pika supports the third-generation storage engine Floyd, optimizing the use of multiple rocksdb instances, the use of Blobs, and the cleanup of expired data to improve the read and write performance of Pika instances.#2413@wangshao1
Updated the Pika Docker Readme to allow deploying Pika services in Docker according to the Readme. #2743@luky116
Improved query-caching mechanisms to reduce redundant meta value queries, enhancing both read and write performance of Pika services.#2735@wangshao1
Supports dynamic adjustment of more RocksDB parameters. Users can adjust parameters according to different business usage scenarios to improve Pika's read and write performance.#2728@cheniujh
Isolated types for HyperLogLog and String to ensure clear distinction between HyperLogLog and String operations.#2720@saz97
Updated PR title validation to disallow Chinese characters at the end of titles. #2718@baerwang
Refactored the master-slave synchronization thread model for slave nodes in master-slave replication mode to minimize binlog consumption blocking issues.#2638@cheniujh
Added dynamic adjustment parameters for RocksDB Compaction strategy, allowing users to adjust the strategy based on their business needs to reduce the performance impact of Compaction operations.#2538@MalikHou
Solve the issue where failing to destruct 'iter' causes 'pkpatternmatchdel' not to delete 'iter' before returning, potentially leading to RocksDB perpetually referencing a version, causing data inconsistency.#2785@wangshao1
Fixed an issue with parsing the config parameter min-blob-size when it includes units.#2767@wangshao1
Fixed an issue with abnormal return values in ZREVRANK.#2763@chejinge
Fixed an error occurring during data migration with Pika-port.#2758@guangkun123
Fixed an issue causing the Dbsize command to crash at runtime due to buffer overrun on heap allocation. #2749@wangshao1
Fixed an issue where multiple slaves connecting to the master during batch scaling could cause incomplete data on some slave nodes due to multiple bgsave operations in a short time.#2746@cheniujh
Corrected uninitialized parameters in slotsscan and bgsave commands to ensure proper balancing.#2745@chejinge
Fixed an issue in Slotmigrate where return values were set incorrectly, terminating data migration in exceptional scenarios. #2741@chejinge
Fixed an issue in Mget where not using the parsing ttl function caused some keys' ttl not to be updated, leading to data inconsistencies.#2730@chejinge
Fixed an issue where the pkpatternmatchdel command caused anomalies in stream data deletion due to incorrect usage.#2726@wangshao1
Fixed an issue where pkpatternmatchdel could not correctly delete the corresponding keys.#2717@wangshao1
Fixed an issue where the Keyspace command did not count Stream type data. #2705@wangshao1
Customized processing logic for some commands to avoid binlog write issues that caused binlog parsing failures on slave nodes. #2693@cheniujh
Fixed an issue where Pika cmdID assignment in the Cmd initialization function could cause data race during concurrent construction.#2692@gukj-spel
Fixed an issue where ExpectedStale did not consider String types, causing incorrect returns if there were expired String type keys.#2682@wangshao1
Fixed a potential race condition in Spop when writing binlog.#2674@cheniujh
Added error messages for unreasonable db instance settings.#2672@Mixficsol
Enhanced the full sync process to automatically retry after a timeout in multi-DB environments..#2667@cheniujh
Fixed a potential window crash issue under timeout scenarios in multi-DB master-slave environments.#2666@cheniujh
Fixed repeated unlocking issues in master-slave sync rate limiting logic.#2657@cheniujh
Release now supports automatic packaging of binary compilation packages for CentOS7 and CentOS8 platforms.#2535@baerwang
Fixed an issue where the getrange command on the Codis side did not return the expected result.#2510@luky116
Support for dynamic adjustment of full synchronization speed limit parameters rsync-timeout-ms and throttle-bytes-per-second#2633@cheniujh
Pika disk I/O speed limit parameters support OnlyRead, OnlyWrite, ReadAndWrite, with the default being OnlyWrite#2599@vacheli
Display the results of info key space 1 in info all and show it on the monitoring interface #2603@XiaoLiang2333
Optimization of INFO command execution time, reducing disk check frequency #2554 @wangshao1
Added Redis tcl tests for five basic data types commands #2527@Mixficsol
Fixed an issue where using Pika Exporter could result in uneven slots distribution#2651@chejinge
Fixed an issue where the Codis dashboard could not correctly update the master instance status#2650@vacheli
Fixed a master-slave synchronization anomaly caused by Redis transaction binlog parsing failure#2642@chejinge
Fixed an issue where starting Pika Exporter without parameters caused startup failure#2640@Polaris3003
Fixed an issue where using Pika Operator to start a Codis-proxy cluster caused a panic#2632@chejinge
Fixed an issue where the cp command failed during automated tests of binaries compiled in CI #2614@cheniujh
Fixed an issue where an uninitialized variable caused cache startup failure#2613@chejinge
Fixed the abnormal function of dynamically modifying parameters of userpass and userblacklist#2600@chejinge
Fix the problem of inconsistent scard sscan results#2596@chejinge
Fix the problem that when max-rsync-parallel-num is greater than 4, slave will coredump during master-slave replication#2595@chejinge
Adjust the number of thread pool threads that are not commonly used to avoid performance loss due to idle running#2590 @chejinge
Fix the problem of Pika transaction edge test case not passing#2586 @chejinge
Fix the problem of info all deadlock after using info keyspace#2584 @chejinge
Solve the problem of incompatibility between 353 and 352 extreme scenarios caused by modifying the dictionary order of zsetscorekeycomparatorimpl#2583 @wangshao1
Fix the problem of abnormal blockcache value after config rewrite#2561@chejinge
Fixed the problem of incorrect value after slotmigrate config rewrite#2548@chejinge
Fix the problem that spop may cause inconsistency between master and slave data#2541@chenbt-hz
Fix the problem of out of bounds in CloseFd(it->second[i])#2539@chejinge
Fix the potential deadlocks in Flushall and FlushDB, and remove the FlushSubDB interface#2533@Mixficsol
Add a parameter to control whether to clean up data files generated by TCL tests, preventing obsolete data from occupying disk space#2507@Mixficsol
Automatically resume service when Codis dashboard coroutine panics#2349@chengyu-l
During the full replication process, the slave node of the pika service does not receive read traffic requests.#2197 @tedli
Delete the remaining Slots in Sharing mode. There is only DB under Pika, and there are multiple DBs under one Pika.#2251 @Mixficsol
Pika exporter exposes cache-related data collection indicators.#2318 @dingxiaoshuai
Pika supports separation of fast and slow commands.#2162 @dingxiaoshuai
After pika executes bgsave, retain the unix timepoint.#2167 @hero-heng
Pika supports dynamic configuration of the disable_auto_compations parameter.#2257 @hero-heng
Pika supports dynamic adjustment of Pika cache parameters#2253 @chejinge
Updated Pika benchmark tool to support more interface stress tests.#2222@wangshao1
Pika Operator supports automatic expansion of pika clusters.#2121@machinly
Add the CompactRange command to support compacting keys within a certain range.#2163@u6th9d
Upgrade RocksDB version to v8.7.3.#2157@JasirVoriya
Pika distributed cluster Codis proxy adds new observable indicators.#2199@dingxiaoshuai
Pika distributed cluster supports automatic failover.#2386@chengyu-l
Optimize codis slot migration speed and support dynamic modification of migration thread and speed.#2486 @chejinge
Pika supports dynamic adjustment of the max-conn-rbuf-size parameter.#2434 @HappyUncle
Pika-operator supports namespace and can deploy different clusters under different namespaces.#2480 @Y-Rookie
Pika-operator supports monitoring indicator collection and automatically launches Pika-experter.#2451 @chengyu-l
ACL forward compatible with userblacklist.#2459 @dingxiaoshuai
Fixed an issue where Pika would accidentally delete dump files during full replication from the node.#2377@wangshao1
Fixed the processing logic after the slave node receives an abnormal response packet from the master during the master-slave replication process.#2319@wangshao1
Call disable compaction when pika executes the shutdown command to improve the process exit speed. #2345 @panlei-coder
Fix the problem of inaccurate Codis-dashboard Redis Memory value.#2337 @Mixficsol
The INFO command is time-consuming and optimized to reduce the frequency of disk checks. #2197 @chejinge
Fixed the issue where rsync deletes temporary files with incorrect paths and fails to delete them, causing rocksdb to fail to open.#2186@wangshao1
Fixed the problem that the compact, bgsave, and info keyspace commands did not specify the db name, resulting in some coredump commands.#2194@u6th9d
Codis dashboard uses info replication instead of info command to search master ip to reduce the performance impact on Pika. #2198 @chenbt-hz
Fix Pika cache to use edge cases to solve the problem of cache and DB data inconsistency in some scenarios.#2225 @chejinge
Fixed the issue where Segmentation fault would be reported when the dump folder is empty.#2265 @chenbt-hz
Fixed the problem that some command caches did not take effect due to flag calculation errors.#2217 @lqxhub
Fixed the problem that in master-slave replication mode, after the master instance flushdb, the slave instance cannot be accessed due to deadlock.#2249@ForestLH
Fixed the issue where some commands did not judge the return value of RocksDB.#2187@callme-taota
Fixed the problem that some command caches did not take effect due to flag calculation errors.#2217 @lqxhub
Fixed the problem that in master-slave replication mode, after the master instance flushdb, the slave instance cannot be accessed due to deadlock.#2249@ForestLH
Fixed the issue where some commands did not judge the return value of RocksDB.#2187@callme-taota
Fix the problem of info keyspace returning wrong results.#2369@Mixficsol
Standard function return value and initial value.#2176@Mixficsol
Fixed the problem of inaccurate network monitoring indicator statistics.#2234@chengyu-l
Fixed an issue where some parameters in configuration file loading were abnormal.#2218@jettcc
Fix the problem of abnormal display of master and slave roles in Codis fe of pika.#2387@chengyu-l
Fix the problem of data inconsistency after migrating data.#2485@chejinge
Fixed the issue of inaccurate display of the Codis-dashboard interface after scaling up or down or starting and stopping pods.#2475@chengyu-l
Fix the problem of repeated locking of DB layer.#2372 @Mixficsol
Fixed the problem of data loss caused by failure to perform full copy.#2439@wangshao1
Fixed the problem that during the master-slave replication process, the master instance did not correctly respond to the slave's synchronization request when executing bgsave.#2437@wangshao1
During the full copy process, add data synchronization status to clarify the data synchronization progress.#2430@baixin01
Fixed the issue where the slave database did not lock the key of the operation when applying binlog, resulting in data inconsistency.#2409 @chejinge
Fix the problem of master instance coredump during codis slot migration process.#2415 @chejinge
Fixed the problem of deleting the dump file being used during the master-slave replication process.#2377@wangshao1
Fixed the problem of rsync response error from slave instance during master-slave replication process.#2319@wangshao1
Fixed the problem that in master-slave replication mode, after the master instance flushdb, the slave instance cannot be accessed due to deadlock.#2372 @Mixficsol
Pika adds a cache layer for hot and cold data separation, improving read performance. #2133 @chejinge@Mixficsol
Codis-Proxy supports dynamic configuration parameter modification. #2103 @dingxiaoshuai123
Completing Go Test cases. #2063@dingxiaoshuai123
Adds cache to improve compilation speed on CI. #2088@baerwang
Fixed coredump issue when using SETRANGE command in Pika. #2125 @chejinge
Fixed full replication issue caused by deleting Clearreplicationid from binlog. #2136 @Mixficsol
Modified lock granularity to improve binlog writing performance in Pika. #2129 @wangshao1
Fixed potential data overflow issue in complex data types member variables. #2016 @u6th9d
Fixed incorrect return value issue in decr command. #2092 @dingxiaoshuai123
Fixed issue where SETRANGE and SETBIT commands did not retain the original key's expiration time. #2095 @u6th9d
slow log Adds statistics on queue waiting time #1997 @wangshao1
ReplicationID is used for primary/secondary replication #1951 @Mixficsol
WAL uses the disablewal command to support dynamic shutdown #2015 @Mixficsol
The number of threads flushed and the number of threads compaction dynamically adjust into one #2014 @Tianpingan
The RocksDB version was upgraded to v8.3.3 #1999 @dingxiaoshuai123
Added documentation for configuring Pika in Macos environment #2003 @klboke
Added the ability to periodically print the length of the work queue to quickly locate problems when the queue is blocked #1978 @Tianpingan
Added an indicator to detect the entire cluster using a pika_exporter #1953 @chenbt-hz
Realize automatic registration of Pika service on K8s environment, and automatically register at startup, so as to realize self-organization of cluster #1931 @machinly
Reduces unnecessary log printing by the exporter, reducing CPU utilization #1945 @Mixficsol
The sentinel mechanism has been upgraded to carry out logical deletion of primary nodes that fall offline #1949 @Mixficsol
Adjust the rate_limit parameter to fix the situation that RPS is 0 during pressure measurement #2009 @chejinge
Fixed the logical determination of empty path when traversing data files in INFODATA command #1996 @Mixficsol
Improved the description of some missing parts of the document #1962 @baerwang
Use make-j to improve build speed #1933 @xiezheng-XD
Fixed an issue where large burrs appeared on the Codis line #2016 @chejinge
Fixed an issue where tools could not be compiled in Macos #2011 @A2ureStone
In v3.5.0, we removed Rsync and replaced it with a self-developed full synchronization scheme, which has the features of breakpoint continuation, rate limit, file inspection and so on
More Redis commands are compatible and supported in v3.5.0.
In v3.5.0, we upgraded RocksDB to version v8.1.1 and implemented tiered compression.
In v3.5.0, we introduced the Codis Cluster Mode and added support for the command to migrate Codis slots.
In v3.5.0, we introduced the pika_exporter tool to monitor the observability metrics of Pika. Subsequently, we added several new metrics to enhance Pika's observability.
pika_exporter.In v3.5.0, we introduced an MVP version of pika-operator, which focuses on enabling the quick deployment of a single-instance Pika service on Kubernetes.
In v3.5.0, Pika supports cross-platform compilation and can be compiled and used on MacOS, CentOS, and Ubuntu platforms.
In v3.5.0, several testing and integration features were added to ensure Pika's robustness across multiple platforms.
#1534 #1772 #1769 #1347 #1268 #1693 #1362 #1538 #1246 #1357 #1534 #1772
@machinly @wanghenshui @chenbt-hz @Tangruilin @kernelai @Mixficsol