-
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
andFlushDB
, and remove theFlushSubDB
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
- Remove Rsync.
- Implement breakpoint resuming, rate limitation, and file verification.
- When synchronizing master-slave in Pika, perform the master run_id verification.
-
More Redis commands are compatible and supported in v3.5.0.
- Support the UNLINK command.
- Support the INFO COMMANDSTATS command.
- Support the HELLO and SETNAME commands.
- Support the BLPOP and BRPOP commands.
- Added Pika original command DISKRECOVERY
-
In v3.5.0, we upgraded RocksDB to version v8.1.1 and implemented tiered compression.
- Upgraded RocksDB version to v8.1.1.
- Implemented tiered compression for RocksDB.
- Added the RocksDB cache configuration option "num-shard-bits" to read from the configuration file.
- With this update, Pika now supports the separation of KV (Key-Value) data using BlobDB.
-
In v3.5.0, we introduced the Codis Cluster Mode and added support for the command to migrate Codis slots.
- Introducing Codis into Pika.
- Introducing Codis CI into the project.
- Supporting the command for Codis slot migration.
- Adding the "slotmigrate" status indicator for whether it is in the process of reloading.
-
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.
- Added Pika observability system
pika_exporter
. - Introduced monitoring metrics for network I/O traffic.
- Added metrics for tracking command execution durations.
- Introduced "estimate_pending_compaction_bytes" metric to analyze fragmentation.
- Added RocksDB metrics.
-
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.
- Implemented fast deployment of a single-instance Pika service on Kubernetes.
- Implemented Pika deployment in the MiniKube environment.
- Added End-to-End (E2E) tests to the pika-operator.
-
In v3.5.0, Pika supports cross-platform compilation and can be compiled and used on MacOS, CentOS, and Ubuntu platforms.
- Supports MacOS platform
-
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
- Added CI on CentOS environment to ensure compatibility on this platform.
- Added CI on MacOS environment to validate Pika's behavior on MacOS.
- Introduced an End-to-End (E2E) testing framework to comprehensively test Pika's functionality from end to end.
- Integrated CMake build environment in Github CI Workflow to facilitate the compilation process.
- Implemented a "populate" method in TCL scripts to simulate Redis debug populate method for test data population.
- Introduced a script to enable easy execution of unit tests.
- Added CMake files in Blackwidow and included unit tests for Blackwidow.
- Utilized CTest for conducting unit tests to ensure code correctness.
- Ported Redis testing scripts to Pika to leverage existing tests and verify Pika's compatibility with Redis.
- Included new tasks in the CI pipeline to verify successful compilation of Pika on CentOS systems.
- 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
- Removed sharding mode from Pika for uniformity. #1481 @chejinge
- Added slot numbers to the configuration (config) settings. #1664 @luky116
- Unified the naming of partitions as slots. #1571 #1655 @chejinge
- Replaced Monitor thread with the Monitor command. #1551 @loveyacper
- Added checks for empty and incorrect passwords during server startup. #1645 @hqh-cell
- Refactored pstd_mutex. #1440 @4kangjc
- Modified the command information key-space response data. #1450 @lqxhub
- Merged common code between pstd and storage. #1419 @4kangjc
- Added "spop" command by count. #1434 @ChanphongGu
- Provided documentation for Pika Docker images. #1557 @machinly
- Replaced the old GetEnv interface with RocksDB's GetFileSystem interface. #1213 @kernelai
- Added scattered Pika documentation. #1193 @fengpeiyuan
- Upgraded CMake to version 3.18. #1366 @AlexStocks
- Added a format tool to Pika. #1512 @liuqian1990
- Added clang-tidy support to Pika. #1515 #1730 @ForestLH @longfar-ncy
- Launched Pika and pika-operator in MiniKube. #1330 @machinly
- Applied Google coding style to clang-format. #1479 @Mixficsol
- Refactored pstd/env using std::filesystem. #1470 @4kangjc
- Added Slice to pstd::GetFixed. #1425 @4kangjc
- Used inline variables in header files. #1407 @4kangjc
- Formatted code using clang-formats. #1378 @AlexStocks
- Moved pika-operator to the pika-tools directory. #1468 @luky116
- Added Codis to Pika migration tool. #1514 @chenbt-hz
- 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. #1408 @AlexStocks
- Fixed size boundary of ttl to set the expiration timestamp. #1413 @ForestLH
- Fixed access to nullptr. #1414 #1426 @fly1ngpengu1ns @Pikachu1412
- Fixed Monitor command. #1424 @loveyacper
- Fixed partitionInfo::operator to return a boolean value. #1427 @4kangjc
- Fixed access to nullptr in src/net. #1453 @gitveg
- Fixed c++17 build failure in aof_reader. #1454 @lqxhub
- Fixed compilation warnings. #1455 @wangchuande
- Fixed occasional build failure in operator. #1464 @machinly
- Fixed CondVar to allow exiting. #1475 @lqxhub
- Fixed libfmt debug build name error. #1476 @lqxhub
- Fixed abnormal exit issue in the Monitor command. #1804 @Mixficsol
- Fixed abnormal binlog offset issue on slave nodes. #1681 @luky116
- Fixed "no auth" error in unit tests. #1680 @hqh-cell
- Fixed issue where binlog files exceeding the limit were not being deleted. #1679 @luky116
- Fixed string-related unit tests. #1675 @Mixficsol
- Fixed issue where tmp files were not deleted during abnormal exit in Codis. #1661 @yaoyinnan
- Fixed inconsistency in data replication between master and slave. #1638 @cheniujh
- Fixed failure to retrieve Metrics indicators in the INFO command. #1646 @chejinge
- Fixed a type error in basic type on one side. #1625 @chenbt-hz
- Fixed incorrect parameter prompts for LPOP and RPOP interfaces. #1520 @luky116
- Fixed the issue where Pika remained in an erroneous state after clearing data due to the instance's disk being full, requiring a restart to recover. #1765 #1822 #1843 @Yangsx-1 @Mixficsol
- Removed the Proxy feature introduced in version 3.4. #1274 @wanghenshui
- Removed the submodule. #1312 @wanghenshui
- Removed the sharding command. #1469 @chejinge
- Removed tcmalloc. #1472 @Mixficsol
- Added protect mode for the leader. #1276 @wanghenshui
- Synchronized the latest code from Codis to the Pika repository. #1279 @WyattJia
- Added external dependency libraries in CMake files. #1281 @kernelai
- Added a list of external dependency libraries in CMake files. #1285 @kernelai
- Created a static link library for Pika, allowing it to be directly linked with dependent libraries to form Pika's binary package. #1310 @Tangruilin
- Made protobuf generation independent of the local environment, enabled multi-core compilation, and fixed the pthread error on Debian. #1314 @lqxhub
- Renamed "slash" to "pstd". #1348 @AlexStocks
- Renamed the "src/pink" directory to "src/net". #1350 @AlexStocks
- Renamed the words "bw" and "blackwidow" to "storage". #1352 #1353 @AlexStocks
- Updated the compiler requirement documentation. #1420 @4kangjc
- Replaced invalid links. #1430 #1441 #1471 @gitveg @1321034767 @chiehwarm
- Upgraded Redis from 4.3.3 to 4.4.4 in /tools/codis2pika/test. #1536 @dependabot
- Upgraded golang.org/x/sys from 0.0.0-20210927094055-39ccf1dd6fa6 to 0.1.0 in /tools/codis2pika. #1535 @dependabot
- Replaced new/delete with smart pointers. #1503 #1502 #1493 @cheniujh @A2ureStone @iiiuwioajdks
- Replaced fprintf with glog. #1421 @Mixficsol