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

Reply via email to