Hi all, The Apache Kvrocks community is pleased to announce that Apache Kvrocks 2.5.0 has been released!
Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol. This release contains a number of new features, bug fixes and improvements compared to the last version released before. The notable changes since 2.5.0 include: ## New Features * Support slot batch for CLUSTERX SETSLOT by @infdahai in https://github.com/apache/kvrocks/pull/1414 * Support blocking migration for the cluster migrate command by @ellutionist in https://github.com/apache/kvrocks/pull/1418 * Support RocksDB auto-tune rate limiter for the background IO by @wanghenshui in https://github.com/apache/kvrocks/pull/1424 * Add separate mutex that protects blocked stream consumers by @torwig in https://github.com/apache/kvrocks/pull/1471 * Add support of the ZMPOP command by @MizukiCry in https://github.com/apache/kvrocks/pull/1468 * Add support of the ZRANGESTORE command by @jihuayu in https://github.com/apache/kvrocks/pull/1482 * Add support of the SINTERCARD command by @infdahai in https://github.com/apache/kvrocks/pull/1444 * Add support of the BZMPOP command by @Yangsx-1 in https://github.com/apache/kvrocks/pull/1490 * Add support of the new command ZUNION by @uds5501 in https://github.com/apache/kvrocks/pull/1502 * Add Redis-compatible cursors for `SCAN` commands by @jihuayu in https://github.com/apache/kvrocks/pull/1489 ## Improvements * Add test case for the HMGET command by @zevin02 in https://github.com/apache/kvrocks/pull/1467 * Escape the special chars in the monitor command output by @wy-ei in https://github.com/apache/kvrocks/pull/1476 * Add a particular test case for HGETALL with async_io=true by @torwig in https://github.com/apache/kvrocks/pull/1401 * Relax the lower bound of the expiration test case to make tests more stable by @git-hulk in https://github.com/apache/kvrocks/pull/1437 * Add the ability to use the '*-123' pattern to specify stream entry ID via XADD by @torwig in https://github.com/apache/kvrocks/pull/1405 * Allow default username and fix case-sensitive check in HELLO by @rueian in https://github.com/apache/kvrocks/pull/1406 * Introduce UniqueEvent and CallbackBase for a more intuitive event handle by @PragmaTwice in https://github.com/apache/kvrocks/pull/1420 * Add redis-cli to the nightly image by @ColinChamber in https://github.com/apache/kvrocks/pull/1415 * Docker image based on Alpine Linux by @aleksraiden in https://github.com/apache/kvrocks/pull/1434 * Use constexpr to simplify the getXXX method in EvbufCallbackBase by @ellutionist in https://github.com/apache/kvrocks/pull/1443 * Migrate go-redis/redis to redis/go-redis by @infdahai in https://github.com/apache/kvrocks/pull/1446 * Don't use auto-retry in unit/type/list_test.go by @git-hulk in https://github.com/apache/kvrocks/pull/1463 * Use the rocksdb mget to improve the performance by @zevin02 in https://github.com/apache/kvrocks/pull/1453 * Parse the timeout parameter as double in the blocking command by @Yangsx-1 in https://github.com/apache/kvrocks/pull/1518 * Warning message for invalid key in the configuration file by @gloof11 in https://github.com/apache/kvrocks/pull/1498 * Bump rocksdb v8.3.2 by @aleksraiden in https://github.com/apache/kvrocks/pull/1516 * Add TakeFloat to Command Parser by @PragmaTwice in https://github.com/apache/kvrocks/pull/1505 * Don't allow the instance replication of itself and its own replicas by @uds5501 in https://github.com/apache/kvrocks/pull/1488 * Bump fmtlib to 10.0.0 by @aleksraiden in https://github.com/apache/kvrocks/pull/1435 * Bump jsoncons to v170.0.2 by @aleksraiden in https://github.com/apache/kvrocks/pull/1438 * Bump luaJIT to c0a8e68 by @xiaobiaozhao in https://github.com/apache/kvrocks/pull/1399 * Bump jsoncons to v0.170.1 by @aleksraiden in https://github.com/apache/kvrocks/pull/1426 * Bump oneTBB to v2021.9.0 by @aleksraiden in https://github.com/apache/kvrocks/pull/1432 ## Bug Fixes * Fix backtrace lib for musl building support by @aleksraiden in https://github.com/apache/kvrocks/pull/1431 * Return error from CommandZRangeGeneric in case of unexpected range_type by @torwig in https://github.com/apache/kvrocks/pull/1430 * Fix flaky test case in Go unit/type/list.go by @git-hulk in https://github.com/apache/kvrocks/pull/1449 * Fix flaky test in migration timeout by @git-hulk in https://github.com/apache/kvrocks/pull/1464 * Fix all weird out parameters `int *ret` in the codebase by @jihuayu in https://github.com/apache/kvrocks/pull/1479 * Fix crash when hitting the perflog command rule by @git-hulk in https://github.com/apache/kvrocks/pull/1481 * Fix SCRIPT misleading error message by @enjoy-binbin in https://github.com/apache/kvrocks/pull/1561 * Fix ZUNION hang in syntax error by @enjoy-binbin in https://github.com/apache/kvrocks/pull/1559 * Avoid printing the invalid configuration key when loading namespaces by @git-hulk in https://github.com/apache/kvrocks/pull/1558 * Fix GETEX not checking wrong type error causing key overwriting by @enjoy-binbin in https://github.com/apache/kvrocks/pull/1546 * LSET return no suck key instead of NotFound when the key does not exist by @enjoy-binbin in https://github.com/apache/kvrocks/pull/1557 * Fix plain GETEX wrongly removing expiration time by @enjoy-binbin in https://github.com/apache/kvrocks/pull/1548 * Fix compile error after upgrading the rocksdb by @git-hulk in https://github.com/apache/kvrocks/pull/1542 * Fix ZMPOP/BZMPOP duplicate parameters by @enjoy-binbin in https://github.com/apache/kvrocks/pull/1543 * Fix stdin usage text in PrintUsage by @enjoy-binbin in https://github.com/apache/kvrocks/pull/1537 * Fix the inconsistent response behavior with Redis in memory usage command by @git-hulk in https://github.com/apache/kvrocks/pull/1539 * Fix incorrect mount data in docker volume by @aleksraiden in https://github.com/apache/kvrocks/pull/1507 * Fix data race when joining the task runner by @git-hulk in https://github.com/apache/kvrocks/pull/1493 * Fix a few typos in CMakeLists.txt by @torwig in https://github.com/apache/kvrocks/pull/1496 * Fix ZRANGE command should return an empty array when count = 0 by @infdahai in https://github.com/apache/kvrocks/pull/1492 ## Build & CI related * Suppress error in TBB to make build failure for GCC 12 and above by @torwig in https://github.com/apache/kvrocks/pull/1440 * Add path-filter by @tisonkun in https://github.com/apache/kvrocks/pull/1422 * Fix needs param by @tisonkun in https://github.com/apache/kvrocks/pull/1427 * Tidy dockerfile by @tisonkun in https://github.com/apache/kvrocks/pull/1477 * Disable `-static-libgcc` on MacOS building by @mapleFU in https://github.com/apache/kvrocks/pull/1555 * Automatically download the golangci-lint if not exists by @infdahai in https://github.com/apache/kvrocks/pull/1491 ## Misc * Remove global server ptr getter used in scripting by @PragmaTwice in https://github.com/apache/kvrocks/pull/1486 * Replace header <sys/poll.h> to <poll.h> in io_util.cc by @aleksraiden in https://github.com/apache/kvrocks/pull/1433 * Support specify release candidate number by @ZENOTME in https://github.com/apache/kvrocks/pull/1419 * Remove useless type cast in redis_slot.cc by @PragmaTwice in https://github.com/apache/kvrocks/pull/1409 * Rename internal macro ENABLE_NEW_ENCODING to METADATA_ENCODING_VERSION by @PragmaTwice in https://github.com/apache/kvrocks/pull/1408 * Print error when occurring the flaky test in TestBitmap by @infdahai in https://github.com/apache/kvrocks/pull/1473 * Refine functions and add parsing test to set and zset by @zncleon in https://github.com/apache/kvrocks/pull/1475 * Avoid manually releasing DB pointer via unique_ptr by @PragmaTwice in https://github.com/apache/kvrocks/pull/1487 * Show CI badge for unstable branch exactly by @tisonkun in https://github.com/apache/kvrocks/pull/1547 * List each command on a separate line in list type by @infdahai in https://github.com/apache/kvrocks/pull/1531 * Drop `incubator-` prefix from Go test files, as well as yaml files and comment lines by @git-hulk in https://github.com/apache/kvrocks/pull/1519 * Remove incubator/incubating from README by @PragmaTwice in https://github.com/apache/kvrocks/pull/1514 * Remove user and group from Docker by @aleksraiden in https://github.com/apache/kvrocks/pull/1513 * Remove incubating from the x.py and DISCLAIMER file by @git-hulk in https://github.com/apache/kvrocks/pull/1515 * Remove ConnContext pointers to prevent manual allocation by @PragmaTwice in https://github.com/apache/kvrocks/pull/1499 * Rename KvrocksLabs to RocksLabs in cmake by @PragmaTwice in https://github.com/apache/kvrocks/pull/1436 ## New Contributors * @rueian made their first contribution in https://github.com/apache/kvrocks/pull/1406 * @ZENOTME made their first contribution in https://github.com/apache/kvrocks/pull/1419 * @MizukiCry made their first contribution in https://github.com/apache/kvrocks/pull/1468 * @zncleon made their first contribution in https://github.com/apache/kvrocks/pull/1475 * @wy-ei made their first contribution in https://github.com/apache/kvrocks/pull/1476 * @jihuayu made their first contribution in https://github.com/apache/kvrocks/pull/1479 * @uds5501 made their first contribution in https://github.com/apache/kvrocks/pull/1488 * @gloof11 made their first contribution in https://github.com/apache/kvrocks/pull/1498 Please refer to the change log for the complete list of changes: https://github.com/apache/kvrocks/compare/v2.4.0...v2.5.0-rc2 Apache Kvrocks website: https://kvrocks.apache.org/ Download Links: https://kvrocks.apache.org/download Kvrocks Resources: - Issue: https://github.com/apache/kvrocks/issues - Mailing list: [email protected] Thanks On behalf of Apache Kvrocks community
