Library

incubator-kvrocks v2.17.0

Versionv2.17.0
Stars★ 4,438
Released2026-09-19

Apache Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol.

Release notes

**Highlights**: This release adds JSON output for `INFO`, the `TDIGEST.CDF` command, and configurable client output-buffer limits. It also improves Stream trimming and HNSW random-number generation, fixes replication and command compatibility issues, and strengthens command permissions, Lua reply handling, and RDB loading.

Dependencies were refreshed, including RocksDB v11.8.1, jsoncons v1.9.0, libevent 2.1.13-stable, fmt v12.2.0, and GoogleTest v1.18.0.

Hash Field Expiration (HFE) commands and configuration remain disabled in 2.17.0, while the internal data structures and metadata are retained. Keyspace Notifications and CuckooFilter are also excluded from this release and should not be treated as available functionality.

### Compatibility Notes

* `DEBUG`, `FLUSHMEMTABLE`, `FLUSHBLOCKCACHE`, and `_db_name` now require admin permission. Clients authenticated with namespace tokens can no longer run these commands. See https://github.com/apache/kvrocks/pull/3570.
* Non-admin `CLIENT LIST`, `CLIENT INFO`, and `CLIENT KILL` operations are restricted to the caller's namespace. See https://github.com/apache/kvrocks/pull/3536.
* Cluster slot migration now uses only `raw-key-value`. The `redis-command` migration path and fallback have been removed; the destination must support `APPLYBATCH`. The `migrate-type`, `migrate-speed`, and `migrate-pipeline-size` settings are deprecated. Use `migrate-batch-rate-limit-mb` and `migrate-batch-size-kb` to control migration throughput and batch size. See https://github.com/apache/kvrocks/pull/3544.
* `client-output-buffer-limit` is disabled by default and applies to the `normal` and `pubsub` client classes. The `slave` class is accepted for compatibility but has no effect on replication connections. See https://github.com/apache/kvrocks/pull/3560.

### New Features

* feat(info): support FORMAT (TXT | JSON) for the INFO command by @nhancdt2602 in https://github.com/apache/kvrocks/pull/3549
* feat(server): support the client-output-buffer-limit configuration by @git-hulk in https://github.com/apache/kvrocks/pull/3560
* feat(tdigest): implement `tdigest.cdf` command by @LindaSummer in https://github.com/apache/kvrocks/pull/3551

### Bug Fixes

* fix(cluster): release forbidden slot range on CLUSTER RESET by @git-hulk in https://github.com/apache/kvrocks/pull/3545
* fix(replication): prevent full-sync checkpoint race with cron purge by @advisedy in https://github.com/apache/kvrocks/pull/3559
* fix(json): use bytes sink for CBOR encoding by @XYenon in https://github.com/apache/kvrocks/pull/3580
* fix(stream): decrement pending_number when XAUTOCLAIM removes deleted PEL entries by @wengsht in https://github.com/apache/kvrocks/pull/3578
* fix(comptaction): use int64_t for parsing total_keys and deleted_keys by @DanFaudemer in https://github.com/apache/kvrocks/pull/3599
* fix(set): return scalar for SRANDMEMBER without count by @raghav2005 in https://github.com/apache/kvrocks/pull/3601
* fix(server): add O_TRUNC when creating PID file to avoid stale content by @weim0000 in https://github.com/apache/kvrocks/pull/3598

### Security & Hardening

* fix(server): scope CLIENT LIST/INFO/KILL to caller's namespace by @git-hulk in https://github.com/apache/kvrocks/pull/3536
* fix(scripting): guard against stack overflow on deeply nested Lua reply by @git-hulk in https://github.com/apache/kvrocks/pull/3547
* fix(rdb): reject over-large declared lengths when loading RDB payloads by @git-hulk in https://github.com/apache/kvrocks/pull/3550
* fix(command): require admin permission for privileged commands by @git-hulk in https://github.com/apache/kvrocks/pull/3570

### Improvements

* refactor(cluster): remove the redis-command migration type by @git-hulk in https://github.com/apache/kvrocks/pull/3544
* perf(search): share a thread-local RNG for HNSW and drop seed (#2398) by @advisedy in https://github.com/apache/kvrocks/pull/3562
* perf(stream): trim with a single DeleteRange…

Share this resource


Discovered 2026-09-22 Source GitHub Archive 2026-09 →