v4.0.0
github-actions
released this
08 Jul 03:49
·
84 commits
to refs/heads/unstable
since this release
🚀 New Features:
- feat:Added TCL tests for Pika Geo data type and fixed defects found during testing.(#2753)
- feat: Pika now supports compilation and packaging on the FreeBSD14 platform.(#2711)
- feat:Pika thread reorganization to avoid starting too many unnecessary threads, Threads are named for easier issue localization. (#2697)
- feat:Codis supports the info command, allowing querying of Codis-proxy's info information. (#2688)
- feat:Codis-proxy adds new monitoring metrics such as P99 and P95 response times. (#2668)
- Added Pika benchmarking metrics to improve benchmarking efficiency and output visualized statistical charts.(#2663)
- 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 )
- Pika does not support duplicate keys of different types. Writing a duplicate key returns an invalid type error.(#2609 )
- feat: Added support for partition index filtering. (#2601 )
- feat: 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 (#2413)
🐛 Fixes:
- Fixed an issue with parsing the config parameter min-blob-size when it includes units.(#2767)
- Fixed an issue with abnormal return values in ZREVRANK.(#2763 )
- Fixed an error occurring during data migration with Pika-port.(#2758)
- Fixed an issue causing the Dbsize command to crash at runtime due to buffer overrun on heap allocation.(#2749)
- 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)
- Corrected uninitialized parameters in slotsscan and bgsave commands to ensure proper balancing.(#2745)
- Fixed an issue in Slotmigrate where return values were set incorrectly, terminating data migration in exceptional scenarios. (#2741)
- 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)
- Fixed an issue where the pkpatternmatchdel command caused anomalies in stream data deletion due to incorrect usage.(#2726)
- Fixed an issue where pkpatternmatchdel could not correctly delete the corresponding keys.(#2717)
- Fixed an ACL password verification error.(#2714)
- Fixed an issue where the Keyspace command did not count Stream type data. (#2705)
- Customized processing logic for some commands to avoid binlog write issues that caused binlog parsing failures on slave nodes. (#2763)
- Fixed an issue where Pika cmdID assignment in the Cmd initialization function could cause data race during concurrent construction.(#2692)
- Fixed an issue where ExpectedStale did not consider String types, causing incorrect returns if there were expired String type keys.(#2682)
- Fixed a potential race condition in Spop when writing binlog.(#2674)
- Added error messages for unreasonable db instance settings.(#2672)
- Fixed a data race issue in server_stat.(#2671)
- Enhanced the full sync process to automatically retry after a timeout in multi-DB (#2667)
- Fixed a potential window crash issue under timeout scenarios in multi-DB master-slave environments.(#2666)
- Fixed repeated unlocking issues in master-slave sync rate limiting logic.(#2675)
- Release now supports automatic packaging of binary compilation packages for CentOS7 and CentOS8 platforms.(#2635)
- Fixed an issue where the getrange command on the Codis side did not return the expected. (#2601 )
- 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)
🧹Improvement:
- Updated the Pika Docker Readme to allow deploying Pika services in Docker according to the Readme. (#2743)
- Improved query-caching mechanisms to reduce redundant meta value queries, enhancing both read and write performance of Pika services.(#2735)
- 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)
- Isolated types for HyperLogLog and String to ensure clear distinction between HyperLogLog and String operations.(#2720)
- Updated PR title validation to disallow Chinese characters at the end of titles. (#2718)
- Refactored the master-slave synchronization thread model for slave nodes in master-slave replication mode to minimize binlog consumption blocking issues.(#2638)
- 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)
Version tags:
https://github.com/OpenAtomFoundation/pika/releases/tag/v4.0.0
📒 Documentation: PikiwiDB
Full Changelog: v3.5.4...v4.0.0
Thanks to @AlexStocks, @Mixficsol, @baerwang, @chejinge, @cheniujh, @chienguo, @guangkun123, @gukj-spel, @longfar-ncy, @lqxhub, @luky116, @saz97 and @wangshao1 for making this release possible.