-
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