Skip to content

v4.0.0

Compare
Choose a tag to compare
@github-actions 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.