Skip to content

Releases: OpenAtomFoundation/pika

Release v3.5.4

15 May 12:45
Compare
Choose a tag to compare

🚀 New Features:

  • Support for dynamic adjustment of full synchronization speed limit parameters rsync-timeout-ms and throttle-bytes-per-second(#2633)
  • Display the results of info key space 1 in info all and show it on the monitoring interface (#2603)
  • Pika disk I/O speed limit parameters support OnlyRead, OnlyWrite, ReadAndWrite, with the default being OnlyWrite(#2599)
  • feat: The INFO command is time-consuming and optimized to reduce the frequency of disk checks (#2554)

Improvement

  • Added Go tests for the slotsmigrate(#2576)
  • Optimization of INFO command execution time, reducing disk check frequency (#2554)
  • Added Redis tcl tests for five basic data types commands (#2527)

🐛 Fixes:

  • Fixed an issue where using Pika Operater could result in uneven slots distribution(#2651)
  • Fixed an issue where the Codis dashboard could not correctly update the master instance status(#2650)
  • Fixed a master-slave synchronization anomaly caused by Redis transaction binlog parsing failure(#2642)
  • Fixed an issue where starting Pika Exporter without parameters caused startup failure(#2640)
  • Fixed an issue where using Pika Operator to start a Codis-proxy cluster caused a panic(#2633)
  • Fixed an issue where the cp command failed during automated tests of binaries compiled in CI (#2614)
  • Fixed an issue where an uninitialized variable caused cache startup failure(#2613)
  • Fixed the abnormal function of dynamically modifying parameters of userpass and userblacklist(#2600)
  • Fix the problem of inconsistent scard sscan results(#2596)
  • Fix the problem that when max-rsync-parallel-num is greater than 4, slave will coredump during master-slave replication(#2595)
  • Adjust the number of thread pool threads that are not commonly used to avoid performance loss due to idle running(#2590)
  • Fix the problem of Pika transaction edge test case not passing(#2586)
  • change cache-model to cache-mode(#2585)
  • Fix the problem of info all deadlock after using info keyspace(#2584)
  • Solve the problem of incompatibility between 353 and 352 extreme scenarios caused by modifying the dictionary order of zsetscorekey comparatorimpl(#2583)
  • Fix compact deadlock problem(#2581)
  • Update pika version used by Pika Operater(#2572)
  • Fix the problem of abnormal blockcache value after config rewrite(#2561)
  • Fixed the problem of incorrect value after slotmigrate config rewrite(#2548)
  • Fix the problem that spop may cause inconsistency between master and slave data(#2541)
  • Fix the problem of out of bounds in CloseFd(it->second[i])(#2539)
  • Fix the potential deadlocks in Flushall and FlushDB, and remove the FlushSubDB interface(#2533)
  • Add a parameter to control whether to clean up data files generated by TCL tests, preventing obsolete data from occupying disk space(#2507)

📒 Documentation: PikiwiDB

Full Changelog: v3.5.3...v3.5.4

Thanks to @Mixficsol, @baerwang, @chejinge, @chenbt-hz, @cheniujh, @euvre and @wangshao1 @vacheli @XiaoLiang2333@Polaris3003 @TheCandle for making this release possible.

Release v3.5.4-rc1

17 Apr 12:00
Compare
Choose a tag to compare

🚀 New Features:

  • feat: The INFO command is time-consuming and optimized to reduce the frequency of disk checks (#2554)

🐛 Fixes:

  • Fixed the abnormal function of dynamically modifying parameters of userpass and userblacklist (#2600)
  • Fix the problem of inconsistent scard sscan results (#2596)
  • Fix the problem that when max-rsync-parallel-num is greater than 4, slave will coredump during master-slave replication (#2595)
  • Adjust the number of thread pool threads that are not commonly used to avoid performance loss due to idle running(#2590)
  • Fix the problem of Pika transaction edge test case not passing(#2586)
  • change cache-model to cache-mode(#2585)
  • Fix the problem of info all deadlock after using info keyspace(#2584)
  • Solve the problem of incompatibility between 353 and 352 extreme scenarios caused by modifying the dictionary order of zsetscorekeycomparatorimpl(#2583)
  • Fix compact deadlock problem(#2581)
  • Update pika version used by Pika-operater(#2572)
  • Fix the problem of abnormal blockcache value after config rewrite(#2561)
  • Fixed the problem of incorrect value after slotmigrate config rewrite(#2548)
  • Fix the problem that spop may cause inconsistency between master and slave data(#2541)
  • Fix the problem of out of bounds in CloseFd(it->second(i))(#2539)
  • Fixed a potential deadlock in Flushall and FlushDB due to the locking order, and deleted the FlushSubDB interface(#2533)
  • Add test cases for the five basic data types commands in tcl(#2527)
  • Add a parameter to control whether to clean up data files generated by Tcl tests, preventing obsolete data from occupying disk space(#2507)

🧹 Updates:

  • feat:add slotmigrate test (#2576)

Version tags:

  • https://github.com/OpenAtomFoundation/pika/releases/tag/v3.5.4-rc1

📒 Documentation: PikiwiDB

Full Changelog: v3.5.3...v3.5.4-rc1

Thanks to @Mixficsol, @baerwang, @chejinge, @chenbt-hz, @cheniujh, @euvre and @wangshao1 for making this release possible.

Release v3.5.3

22 Mar 10:08
Compare
Choose a tag to compare

🚀 New Features:

  • feat: Pika supports ACL(#2013)
  • feat: Automatically resume service when Codis dashboard coroutine panics(#2349)
  • feat: Pika cache adds bimap data type.(#2253)
  • feat: Delete the remaining Slots in Sharing mode. There is only DB under Pika, and there are multiple DBs under one Pika.(#2251)
  • feat: Pika exporter exposes cache-related data collection indicators.(#2318)
  • feat: Pika supports separation of fast and slow commands.(#2162)
  • feat: After pika executes bgsave, retain the unix timepoint.(#2167)
  • feat: Pika supports dynamic configuration of the disable_auto_compations parameter.(#2257)
  • feat: Pika supports Redis Stream.(#1955)
  • feat: Pika supports large key analysis tools(#2195)
  • feat: Pika supports dynamic adjustment of Pika cache parameters([#2253(https://github.com//pull/2253))
  • feat: Updated Pika benchmark tool to support more interface stress tests.([#2222 (https://github.com//pull/2222))
  • feat: Pika Operator supports automatic expansion of pika clusters.(#2121)
  • feat: Add the CompactRange command to support compacting keys within a certain range.(#2163)
  • feat: Add small time cost compaction policy.(#2172)
  • feat: Upgrade RocksDB version to v8.7.3.(#2157)
  • feat: Pika distributed cluster Codis proxy adds new observable indicators.(#2199)
  • feat: Pika distributed cluster supports automatic failover.(#2386)
  • feat: let pika slave support Redis transaction (#2441)
  • feat: add namespace for kubeblocks pika cluster helm chart (#2480)
  • feat: add multi key slot migrate (#2486)
  • feat: support dynamic set max-conn-rbuf-size (#2434)
  • feat: support deploying pika_exporter components using kubeblocks (#2473)
  • feat: support building pika_exporter docker image (#2451)
  • feat: add issue translation robot (#2478)
  • feat: add Rename Command (#2455)
  • feat: support dynamic set max-conn-rbuf-size (#2434)
  • feat: pika supports kubeblocks component definition api (#2411)

🐛 Fixes:

  • fix: delete cache log (#2517)
  • fix: binlog is written repeatedly && not delete cache (#2485)
  • fix: dbsize caculate error (#2494)
  • fix: delete migrate log (#2489)
  • fix: fix github action CI failure (#2491)
  • fix: move Dockerfile and build_docker.sh into docker subdirectory (#2458)
  • fix: no namespace in configmap, so remove the namespace (#2474)
  • fix: support saving pika config to hostpath (#2476)
  • fix: support removing pika instance from codis dashboard before pod stop (#2475)
  • fix: acl forward compatible (#2459)
  • fix: delete reduntant lock in storage (#2372)
  • fix: linux arm64 spelling mistake in Makefile of pika_exporter(#2456) (#2457)
  • fix: after full synchronization fails, full synchronization will be skipped directly(#2433) (#2439)
  • fix: return kErr status when Master handle MetaRsync reqeust if db is not exist or doing bgsave(#2289) (#2437)
  • fix: ACL user authentication errors (#2449)
  • fix: change the full-sync and incremental-full failure alert message (#2430)
  • fix: ci replication go test failed problem (#2435)
  • fix: Fix the problem of possible slave_key conflict (#2431)
  • fix: clear old pika operator (#2405)
  • fix: fix variable init error (#2421)
  • fix: slave instance apply db not used lock (#2409)
  • fix: master coredump when slotmigrate some slots (#2415)
  • fix: ci replication go test failed problem (#2435)
  • fix: no namespace in configmap, so remove the namespace (#2474)
  • fix: Fixed an issue where Pika would accidentally delete dump files during full replication from the node.(#2377)
  • fix: Fixed the processing logic after the slave node receives an abnormal response packet from the master during the master-slave replication process.(#2319)
  • fix: Call disable compaction when pika executes the shutdown command to improve the process exit speed. (#2345)
  • fix: Fix the problem of inaccurate Codis-dashboard Redis Memory value.(#2337)
  • fix: Fixed the issue where rsync deletes temporary files with incorrect paths and fails to delete them, causing rocksdb to fail to open.(#2186)
  • fix: Fixed the problem that the compact, bgsave, and info keyspace commands did not specify the db name, resulting in some coredump commands.(#2194)
  • fix: Codis dashboard uses info replication instead of info command to search master ip to reduce the performance impact on Pika. (#2198)
  • fix: Fix Pika cache to use edge cases to solve the problem of cache and DB data inconsistency in some scenarios.(#2225)
  • fix: Fixed the issue where Segmentation fault would be reported when the dump folder is empty.(#2265)
  • fix: Fixed the problem that some command caches did not take effect due to flag calculation errors.(#2217
  • fix: Fixed the problem that in master-slave replication mode, after the master instance flushdb, the slave instance cannot be accessed due to deadlock.(#2249)
  • fix: Fixed the issue where some commands did not judge the return value of RocksDB.(#2187)
  • fix: Fix the problem of info keyspace returning wrong results.(#2369)
  • fix: Standard function return value and initial value.(#2176)
  • fix: Fixed the problem of inaccurate network monitoring indicator statistics.(#2234)
  • fix: Fixed an issue where some parameters in configuration file loading were abnormal.(#2218)
  • fix: Fix Codis dashboard cpu used 100%.(#2393)
  • fix: Fix the problem of abnormal display of master and slave roles in Codis fe of pika.(#2387)

📚 Documentation:

  • docs: change README_CN.md README.md (#2406)

🧹 Updates:

  • ci: cleanup code (#2479)
  • chore: build macos del python deps (#2401)
  • chore(deps): bump google.golang.org/protobuf from 1.30.0 to 1.33.0 in /tools/pika_exporter (#2511)
  • test: add codis integration test (#2502)
  • test: add acl test (#2495)
  • test: add tcl test (#2497)
  • test: add replication-test-go (#2496)
  • test: add rename go test (#2468)
  • test: add non-cached and cached integration test (#2467)
  • test: add tcl go test (#2464)

Version tags:

  • https://github.com/OpenAtomFoundation/pika/releases/tag/v3.5.3

📒 Documentation: PikiwiDB
Thanks to @578223592, @AlexStocks, @Mixficsol, @u6th9d, @ForestLH, @KKorpse, @MalikHou, @chejinge, @chengyu-l, @gxlct008, @hero-heng, @jettcc, @panlei-coder, @sjcsjc123, @tedli, @wanghenshui, @HappyUncle, @JackGod001, @Y-Rookie, @baerwang, @baixin01, @chenbt-hz, @dingxiaoshuai123, @Ruipu-Chang, @callme-taota, @Summer-0827, @lqxhub, @luky116, @machinly and @wangshao1 for making this release possible.

Release v3.5.3-alpha

07 Feb 09:42
f61f49a
Compare
Choose a tag to compare

🚀 New Features:

  • feat:distable compaction during shutdown (#2345)
  • feat: cache metrics (#2318)
  • feat: separation of fast and slow commands (#2162)
  • feat: pika support acl (#2013)
  • feat: update benchmark_client to support more api commands (#2222)
  • feat: Dynamically set disable_auto_compaction (#2257)
  • feat: add big key tool (#2195)
  • feat: Stream base commands (#1955)
  • feat: Exporter for Proxy (#2199)
  • feat: add lastsave cmd (#2167)

🚀 Enhancement

  • feat: recover it when the goroutine caused some panic (#2349)
  • feat: move streams implementation to storage layer. (#2242)
  • feat:check repl state to response immediately if full sync not finished (#2197)

🐛 Fixes:

  • fix: update 'info replication' command output format about db which add a colon #2375 (#2384)
  • fix: keyspace's result wrong (#2369)
  • fix: fix delete dump file while still in use (#2377)
  • fix: rename zset_cache_start_pos -> zset_cache_start_direction (#2358)
  • fix: handle rsync response error in slave side (#2319)
  • fix: delete invalid primary/secondary synchronization code (#2334)
  • fix:bitmap cache (#2253)
  • fix: Redis Keys / Redis Memory not shown in topom dashboard (#2337)
  • fix: fix version compare error in ZSetsScoreKeyComparatorImpl (#2339)
  • fix: command CONFIG SET * reply array length error(#2320) (#2336)
  • fix: delete slot (#2251)
  • fix: duplicate closing files(#2304) (#2311)
  • fix: read acl file crash on Mac OS (#2310)
  • fix: without close file(#2301) (#2314)
  • fix: bug with repeat key (#2306)
  • fix: compilation fails (#2317)
  • fix: If the localFileMap is empty, do not continue execution(#2303) (#2312)
  • fix: RsyncClient::ThreadMain not close file(#2302) (#2313)
  • fix: if resp->code() != RsyncService::kOk should set SyncSlaveSlot repl_state_ to kError(#2299) (#2315)
  • fix: without errno in log or status when open and read file failed(#2287, #2292) (#2307)
  • fix: return wrong response code when DBSync request SyncMasterSlot not exist(#2290, #2293) (#2308)
  • fix :fix acl complie (#2294)
  • fix: delete binglog dead code (#2274)
  • fix: upgrade image tags and etcd volumeClaimTemplates (#2281)
  • fix: incorrect initialization sequence about pika role and cmdstat_map(#2235) (#2278)
  • fix: gcc version must be greater than or equal to 9 (#2275) (#2276)
  • fix: segment fault when dump dir is empty (#2265)
  • fix: cache layer crash and data confusion (#2217)
  • fix:fix bug that the slave stuck while run flushdb (#2249)
  • fix:cache bug && add cache test (#2225)
  • fix: delete actions cache (#2236)
  • fix: network statistic input bytes is not right in some case(#2223) (#2224) (#2234)
  • fix:fix Zpopmaxbugs return value not same as redis (#2188)
  • fix: network statistic input bytes is not right in some case(#2223) (#2224)
  • fix:fix txn go test error (#2219)
  • fix: fix configuration loading error (#2218)
  • fix: Slow log timestamp format is inconsistent with Redis (#2212)
  • fix:build time (#2211)

📚 Documentation:

  • docs: change en readme (#2229)
  • docs: refine chinese readme (#2116)

🧹 Updates:

  • fix: update 'info replication' command output format about db which add a colon #2375 (#2384)
  • feat: update benchmark_client to support more api commands (#2222)
  • fix:cache bug && add cache test (#2225)
  • fix:fix txn go test error (#2219)

Version tags:

  • https://github.com/OpenAtomFoundation/pika/releases/tag/v3.5.3-alpha

📒 Documentation: PikiwiDB

Full Changelog: v3.5.2...v3.5.3-alpha

Thanks to @578223592, @AlexStocks, @ForestLH, @KKorpse, @MalikHou, @Mixficsol, @baerwang, @chejinge, @chenbt-hz, @chengyu-l, @dingxiaoshuai123, @gxlct008, @hero-heng, @jettcc, @lqxhub, @panlei-coder, @sjcsjc123, @tedli, @wanghenshui and @wangshao1 for making this release possible.

v3.5.2

15 Dec 01:51
af7a3d6
Compare
Choose a tag to compare

🚀 New Features:

🐛 Fixes:

  • 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

  • Added redis-copy traffic replication tool. #2044 @Mixficsol

  • 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

📒 Documentation: PikiwiDB

Full Changelog: v3.5.1...v3.5.2

Thanks to @ForestLH, @chejinge, @dingxiaoshuai123,@Mixficsol, @Ruipu-Chang, @Summer-0827, @baerwang, @callme-taota, @hero-heng, @machinly, @u6th9d, @wanghenshui and @wangshao1 for making this release possible.

v3.5.2-alpha

01 Dec 10:34
Compare
Choose a tag to compare

v3.5.2

New features

bugfix

  • 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

  • Added redis-copy traffic replication tool. #2044 @Mixficsol

  • 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

v3.5.1

28 Sep 02:45
e564344
Compare
Choose a tag to compare

New features

  • 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

bugfix

  • 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

v3.5.0

24 Aug 04:01
6cb413c
Compare
Choose a tag to compare

Major features

1. Removal of Rsync

  • 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

2. Compatibility with More Redis Commands

  • More Redis commands are compatible and supported in v3.5.0.

3. RocksDB Version Upgrade and Tiered Compression

  • In v3.5.0, we upgraded RocksDB to version v8.1.1 and implemented tiered compression.

4. Support for BlobDB:

  • In v3.5.0, we added support for BlobDB KV separation.

5. Cluster Mode based on Codis

  • In v3.5.0, we introduced the Codis Cluster Mode and added support for the command to migrate Codis slots.

6.Observability

  • 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.

7.Cloud-Native Deployment

  • 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.

8.Cross-platform compilation

  • In v3.5.0, Pika supports cross-platform compilation and can be compiled and used on MacOS, CentOS, and Ubuntu platforms.

Features

  • Added automatic rate limiting for "compact" operation to reduce its impact on the latency of upper-layer data read and write operations. #1374 @wanghenshui
  • Introduced the "aof_to_pika" toolset for data conversion. #1340 @Axlgrep
  • Implemented the printing of the Pika logo. #1787 @Mixficsol
  • Optimized certain code portions using clang-tidy. #1701 #1730 @longfar-ncy
  • Refactored C++98-style code to C++11-style following C++ coding guidelines. #1684 @chejinge
  • Introduced support for the "snappy" library. #1216 @kernelai
  • Added CLA (Contributor License Agreement) file. #1260 @kernelai
  • Extended memory-related configuration options to support units in K, M, or G. #1307 @lqxhub
  • Added libunwind as a dependency library. #1316 @kernelai
  • Included a compilation script for Pika. #1356 @lqxhub
  • Added "rate-limiter-bandwidth" option to pika.conf for rate limiting. #1272 @wanghenshui
  • Enhanced the "info" command by adding "redis_version" information. #1403 @wanghenshui
  • Provided CMake support for aof_to_pika tool. #1436 @A2ureStone
  • Introduced clang-formatted shell scripts. #1448 @lqxhub
  • Added a configuration option to disable the compilation of command docs. #1642 @tedli
  • Provided CMake support for benchmark_client, binlog_sender, manifest_generator, rdb_to_pika, txt_to_pika, pika_to_txt, and pika_port. #1451 @A2ureStone

Bugfixes

  • Fixed coredump caused by incompatible CPU instruction sets. #1812 @chejinge
  • Fixed abnormal exit issue in the Monitor command. #1804 @Mixficsol
  • Fixed incomplete configuration overwrite. #1800 @yaoyinnan
  • Fixed CTest tests on MacOS. #1789 #1721 #1782 @tedli @Mixficsol
  • Fixed loading master-run-id from the configuration file during process startup, which caused the need for re-syncing historical data on slave nodes. #1778 @luky116
  • Fixed format error in overrides option during Pika single test. #1768 @A2ureStone
  • Fixed command to retrieve INFO xxx (INFO data, INFO stats) by index instead of using INFO ALL. #1762 @yaoyinnan
  • Improved instantaneous_metric to collect network metrics every 5 seconds. #1757 @yaoyinnan
  • Improved config get to return complete parameters. #1593 @luky116
  • Fixed possible empty slot issue. #1712 @Mixficsol
  • Fixed some bugs related to version selection in the makefile. #1714 @luky116
  • Fixed bug in executing HSET for the first time. #1710 @Mixficsol
  • Fixed the issue of binlog offset on slave nodes being greater than master nodes, causing TrySync failure. #1681 @luky116
  • Fixed a NOAUTH error test, where any command would give an error when AUTH is required. #1680 @hqh-cell
  • Fixed the issue of binlog files not being automatically cleaned up when exceeding the limit. #1679 @luky116
  • Fixed issues with LPUSHX and RPUSHX multi-element insertion. #1525 @ForestLH
  • Fixed error in executing the BGSAVE command. #1523 @Brokenice0415
  • Fixed the use of io_uring when closing RocksDB to prevent errors during linking. #1489 @lqxhub
  • Fixed MacOS environment Pika compilation warnings. #1740 @Mixficsol
  • Fixed error message for unsupported commands, adapted for go-redis. #1244 @wgqi1126
  • Fixed a protobuf3 compilation warning. #1267 @wanghenshui
  • Fixed bugs in EXISTS and DEL commands in sharding mode. #1277 @wanghenshui
  • Fixed rsync auth bug. #1278 @wanghenshui
  • Fixed rewrite result format to comply with Redis standards. #1339 @lqxhub
  • Fixed SET NX/XX return values to match Redis behavior. #1343 @gtygo
  • Fixed missing pika_master_link_status and pika_slave_priority indicators in exporter. #1726 @Mixficsol
  • Fixed potential coredump when Pika uses too many file descriptors, preventing it from exceeding the ulimit. #1346 @kernelai
  • Fixed initialization of group members in classes to prevent unexpected closure of the connection between redis-cli and Pika. #1390 @AlexStocks
  • Fixed delete_dir snprintf bug. #1400 @wanghenshui
  • Fixed thread num limitation. #1401 @wanghenshui
  • Fixed redis-benchmark to get config from Pika. #1402 @wanghenshui
  • Fixed initialization of class members. #1406 @AlexStocks
  • Fixed issues in Pika's master-slave synchronization tests on MacOS. #1776 @Mixficsol
  • Fixed NULL to nullptr. [#...
Read more

v3.5.0-alpha

05 Aug 02:31
b3c5268
Compare
Choose a tag to compare

Major features

1. Removal of Rsync

  • In v3.5.0-alpha, 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

2. Compatibility with More Redis Commands

  • More Redis commands are compatible and supported in v3.5.0-alpha.

3. RocksDB Version Upgrade and Tiered Compression

  • In v3.5.0-alpha, we upgraded RocksDB to version v8.1.1 and implemented tiered compression.

4. Support for BlobDB:

  • In v3.5.0-alpha, we added support for BlobDB KV separation.

5. Cluster Mode based on Codis

  • In v3.5.0-alpha, we introduced the Codis Cluster Mode and added support for the command to migrate Codis slots.

6.Observability

  • In v3.5.0-alpha, we introduced the pika_exporter tool to monitor the observability metrics of Pika. Subsequently, we added several new metrics to enhance Pika's observability.

7.Cloud-Native Deployment

  • In v3.5.0-alpha, we introduced an MVP version of pika-operator, which focuses on enabling the quick deployment of a single-instance Pika service on Kubernetes.

8.Cross-platform compilation

  • In v3.5.0-alpha, Pika supports cross-platform compilation and can be compiled and used on MacOS, CentOS, and Ubuntu platforms.

Features

  • Added automatic rate limiting for "compact" operation to reduce its impact on the latency of upper-layer data read and write operations. #1374 @wanghenshui
  • Introduced the "aof_to_pika" toolset for data conversion. #1340 @Axlgrep
  • Implemented the printing of the Pika logo. #1787 @Mixficsol
  • Optimized certain code portions using clang-tidy. #1701 #1730 @longfar-ncy
  • Refactored C++98-style code to C++11-style following C++ coding guidelines. #1684 @chejinge
  • Introduced support for the "snappy" library. #1216 @kernelai
  • Added CLA (Contributor License Agreement) file. #1260 @kernelai
  • Extended memory-related configuration options to support units in K, M, or G. #1307 @lqxhub
  • Added libunwind as a dependency library. #1316 @kernelai
  • Included a compilation script for Pika. #1356 @lqxhub
  • Added "rate-limiter-bandwidth" option to pika.conf for rate limiting. #1272 @wanghenshui
  • Enhanced the "info" command by adding "redis_version" information. #1403 @wanghenshui
  • Provided CMake support for aof_to_pika tool. #1436 @A2ureStone
  • Introduced clang-formatted shell scripts. #1448 @lqxhub
  • Added a configuration option to disable the compilation of command docs. #1642 @tedli
  • Provided CMake support for benchmark_client, binlog_sender, manifest_generator, rdb_to_pika, txt_to_pika, pika_to_txt, and pika_port. #1451 @A2ureStone

Bugfixes

  • Fixed coredump caused by incompatible CPU instruction sets. #1812 @chejinge
  • Fixed abnormal exit issue in the Monitor command. #1804 @Mixficsol
  • Fixed incomplete configuration overwrite. #1800 @yaoyinnan
  • Fixed CTest tests on MacOS. #1789 #1721 #1782 @tedli @Mixficsol
  • Fixed loading master-run-id from the configuration file during process startup, which caused the need for re-syncing historical data on slave nodes. #1778 @luky116
  • Fixed format error in overrides option during Pika single test. #1768 @A2ureStone
  • Fixed command to retrieve INFO xxx (INFO data, INFO stats) by index instead of using INFO ALL. #1762 @yaoyinnan
  • Improved instantaneous_metric to collect network metrics every 5 seconds. #1757 @yaoyinnan
  • Improved config get to return complete parameters. #1593 @luky116
  • Fixed possible empty slot issue. #1712 @Mixficsol
  • Fixed some bugs related to version selection in the makefile. #1714 @luky116
  • Fixed bug in executing HSET for the first time. #1710 @Mixficsol
  • Fixed the issue of binlog offset on slave nodes being greater than master nodes, causing TrySync failure. #1681 @luky116
  • Fixed a NOAUTH error test, where any command would give an error when AUTH is required. #1680 @hqh-cell
  • Fixed the issue of binlog files not being automatically cleaned up when exceeding the limit. #1679 @luky116
  • Fixed issues with LPUSHX and RPUSHX multi-element insertion. #1525 @ForestLH
  • Fixed error in executing the BGSAVE command. #1523 @Brokenice0415
  • Fixed the use of io_uring when closing RocksDB to prevent errors during linking. #1489 @lqxhub
  • Fixed MacOS environment Pika compilation warnings. #1740 @Mixficsol
  • Fixed error message for unsupported commands, adapted for go-redis. #1244 @wgqi1126
  • Fixed a protobuf3 compilation warning. #1267 @wanghenshui
  • Fixed bugs in EXISTS and DEL commands in sharding mode. #1277 @wanghenshui
  • Fixed rsync auth bug. #1278 @wanghenshui
  • Fixed rewrite result format to comply with Redis standards. #1339 @lqxhub
  • Fixed SET NX/XX return values to match Redis behavior. #1343 @gtygo
  • Fixed missing pika_master_link_status and pika_slave_priority indicators in exporter. #1726 @Mixficsol
  • Fixed potential coredump when Pika uses too many file descriptors, preventing it from exceeding the ulimit. #1346 @kernelai
  • Fixed initialization of group members in classes to prevent unexpected closure of the connection between redis-cli and Pika. #1390 @AlexStocks
  • Fixed delete_dir snprintf bug. #1400 @wanghenshui
  • Fixed thread num limitation. #1401 @wanghenshui
  • Fixed redis-benchmark to get config from Pika. #1402 @wanghenshui
  • Fixed initialization of class members. #1406 @AlexStocks
  • Fixed issues in Pika's master-slave synchronization tests on MacOS. #1776 [@Mixficsol](https://gi...
Read more

v3.4.1[abandoned]

07 May 10:46
Compare
Choose a tag to compare

This version has many bugs and is unstable, we have abandoned it. Use v3.3.6 instead.

新增功能:

  • 支持quit命令。
  • 支持gcc 9.4.0 编译。
  • 多阶段编译减少docker image size。
  • release包对zlib、lz4、zstd压缩算法支持。

bugfix

  • 修复线程池惊群问题。
  • 修复pubsub 出现coredump的问题。
  • 修复max-write-buffer-num 无法静态配置的问题。
  • 修复max-cache-statistic-keys 配置项重复的问题。

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 副本一致性可配置功能目前只支持分片模式。
  • 分片模式下取消slaveof 命令,使用pkcluster slotsslaveof 替代,详细见Pika分片命令
  • 经典模式下取消info log命令,info log 的binlog offset移至info replication,info log 的binlog size移至info data
  • 分片模式下取消info replication命令,用pkcluster info slot替代
  • 由于redis-cli 对于数据展示格式限制,对于pkcluster info slot的数据展示格式不够人性化。可以自行修改redis-cli代码 redis-cli modification
  • 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数据重新导入。