Skip to content

Latest commit

 

History

History
243 lines (189 loc) · 26.4 KB

CHANGELOG.MD

File metadata and controls

243 lines (189 loc) · 26.4 KB

v3.5.0

Major features

1.Removal of Rsync

  1. Remove Rsync.
  2. Implement breakpoint resuming, rate limitation, and file verification.
  3. When synchronizing master-slave in Pika, perform the master run_id verification.

2.Compatibility with More Redis Commands

  1. Support the UNLINK command.
  2. Support the INFO COMMANDSTATS command.
  3. Support the HELLO and SETNAME commands.
  4. Support the BLPOP and BRPOP commands.

3.RocksDB Version Upgrade and Tiered Compression

  1. Upgraded RocksDB version to v8.1.1.
  2. Implemented tiered compression for RocksDB.
  3. Added the RocksDB cache configuration option "num-shard-bits" to read from the configuration file.

4.Support for BlobDB:

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

    #1456

    @lqxhub

  1. With this update, Pika now supports the separation of KV (Key-Value) data using BlobDB.

5.Codis Cluster Mode based on Codis

  1. Introducing Codis into Pika.
  2. Introducing Codis CI into the project.
  3. Supporting the command for Codis slot migration.
  4. Adding the "slotmigrate" status indicator for whether it is in the process of reloading.

6.Observability

  1. Added Pika observability system pika_exporter.
  2. Introduced monitoring metrics for network I/O traffic.
  3. Added metrics for tracking command execution durations.
  4. Introduced "estimate_pending_compaction_bytes" metric to analyze fragmentation.
  5. Added RocksDB metrics.

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.

    #1243 #1330 #1347

    @machinly

  1. Implemented fast deployment of a single-instance Pika service on Kubernetes.
  2. Implemented Pika deployment in the MiniKube environment.
  3. Added End-to-End (E2E) tests to the pika-operator.

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.

    #1372 #1488

    @loveyacper @Mixficsol

  1. Supports MacOS platform

9.Multi-platform CI, Go integration tests, TCL unit tests, PythonE2E tests, CTest unit tests

  1. Added CI on CentOS environment to ensure compatibility on this platform.
  2. Added CI on MacOS environment to validate Pika's behavior on MacOS.
  3. Introduced an End-to-End (E2E) testing framework to comprehensively test Pika's functionality from end to end.
  4. Integrated CMake build environment in Github CI Workflow to facilitate the compilation process.
  5. Implemented a "populate" method in TCL scripts to simulate Redis debug populate method for test data population.
  6. Introduced a script to enable easy execution of unit tests.
  7. Added CMake files in Blackwidow and included unit tests for Blackwidow.
  8. Utilized CTest for conducting unit tests to ensure code correctness.
  9. Ported Redis testing scripts to Pika to leverage existing tests and verify Pika's compatibility with Redis.
  10. Included new tasks in the CI pipeline to verify successful compilation of Pika on CentOS systems.

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

Improvement

Bugfixes

Notice