Skip to content

2.10.0

Compare
Choose a tag to compare
@git-hulk git-hulk released this 06 Oct 12:05
· 8 commits to 2.10 since this release

Important Notice

This new release introduces significant features, improvements, and fixes.

Dependency Updates: RocksDB version bumps from 8.11.4 to 9.6.1.

Highlights

The new data structure HyperLogLog and its commands are supported now, users can use PF* commands in Kvrocks. Thanks to contributors: @mapleFU @tutububug.

All stream group commands are supported in this release which makes Kvrocks totally compatible with Redis stream.

We allow to enhance the transaction consistency by introducing the db context. It will always use the same snapshot in the transaction while the configuration txn_context_enabled is enabled. Thanks to contributor: @PokIsemaine

Kvrocks Search commands and HNSW index are supported in Kvrocks, but we haven't released them because they're not ready for production at the moment.

New Features

  • feat(config): add compaction-checker-cron to extend original compaction-checker-range by @PragmaTwice in #2383
  • feat(search): Add HNSW encoding index & insertion/deletion algorithm by @Beihao-Zhou in #2368
  • feat(cluster): support migrate slot range by @PokIsemaine in #2389
  • feat(config): change redis-cursor-compatible default value to yes by @jihuayu in #2429
  • feat(json): add support of JSON.RESP command by @jackyyyyyssss in #2390
  • feat(search): support query parameters in SQL and RediSearch query by @PragmaTwice in #2443
  • feat(search): Hnsw Vector Search Plan Operator & Executor by @Beihao-Zhou in #2434
  • feat(config): allow to change the max length of the bulk string by @git-hulk in #2444
  • feat(config): implement integer config option with the unit by @PragmaTwice in #2448
  • feat(hyperloglog): add support of the Hyperloglog data structure by @tutububug in #2142
  • feat(search): implement vector query for sql/redisearch parser & transformer by @Beihao-Zhou in #2450
  • feat(hyperloglog): Add support of PFMERGE command by @mapleFU in #2457
  • feat(search): add support of HNSW vector fields for FT.CREATE by @Beihao-Zhou in #2477
  • feat(command): Implement the new command POLLUPDATES for polling updates by sequence by @git-hulk in #2472
  • feat(conn): add arguments for unknown command message by @PragmaTwice in #2483
  • feat(search): allow to omit ON HASH|JSON in FT.CREATE by @PragmaTwice in #2484
  • feat(script): Support script flags of Eval script and Function by @PokIsemaine in #2446
  • feat: Add slow flags for commands with heavy disk I/O by @jonathanc-n in #2494
  • refactor: Improve consistency and isolation semantics by adding Context parameter to DB API by @PokIsemaine in #2332
  • feat(config): add txn_context_enabled to allow to enable the transaction feature by @PokIsemaine in #2506
  • feat: support limit WriteBatch size by @AntiTopQuark in #2508
  • feat: Bitmap type DUMP/RESTORE command support by @poipoiPIO in #2535

Bug Fixes

  • fix(stream): NOGROUP/BUSYGROUP error message should return without 'ERR' prefix by @git-hulk in #2397
  • fix: Add timeouts to go-redis client and ping on client creation by @torwig in #2404
  • fix(search): misidentify DESC token in SQL parser by @PragmaTwice in #2439
  • fix: monitor dumps 0xffffff prefix for signed char by @PragmaTwice in #2482
  • fix(replication): potential deadlock when switching master frequently by @git-hulk in #2516
  • fix(namespace): didn't reload namespaces from DB after the full sync by @git-hulk in #2527
  • fix(replication): didn't resume the db status after restarting full sync by @git-hulk in #2549
  • fix(rdb): incorrect type conversion during RDB loads the int8 encoding by @fstd2 in #2547
  • fix: add more check in cluster node parsing by @jonathanc-n in #2538
  • fix(test): use fixed seed to improve reproducibility. by @LindaSummer in #2557
  • fix(config): wrong rocksdb config name max_sub_compactions by @ChrisZMF in #2499

Code Improvements

  • refactor: rename variable names for clarity in LCS method by @shoothzj in #2392
  • feat: add iter->status() check for loop iterators by @LindaSummer in #2395
  • perf(conn): skip index matching when index map is empty by @PragmaTwice in #2405
  • chore(resp): extract RESP functions from Connection by @PragmaTwice in #2406
  • refactor(stream): change the encoding of stream consumer group by @Yangsx-1 in #2384
  • chore: fix compiler warning in cluster and HNSW indexing by @jjz921024 in #2436
  • feat(stream): add support of XPENDING command by @Yangsx-1 in #2387
  • chore(hyperloglog): add go test cases and minor optimizations/bugfixes by @mapleFU in #2463
  • feat(search): Hnsw Vector Search Optimizaton Pass by @Beihao-Zhou in #2466
  • feat(command): add category enum for every command by @PragmaTwice in #2479
  • chore: use StringJoin in EnumField::Set by @PragmaTwice in #2485
  • chore: improve the style and document for SlotMigration by @mapleFU in #2465
  • fix(test): remove meaningless list-max-ziplist-size by @PokIsemaine in #2517
  • fix(typo): filed -> field by @AntiTopQuark in #2519
  • test: add go test cases for txn-context-enabled config by @PokIsemaine in #2530
  • chore(tests): add basic tests for the stream consumer group by @jonathanc-n in #2533
  • chore(tests): enhance the namespace replication to prevent flaky test by @git-hulk in #2540
  • chore(tests): refactor and enhance test cases to prevent flaky test failure by @git-hulk in #2544

Build & CI Changes

Documentation Changes

New Contributors

Full Changelog: v2.9.0...v2.10.0-rc1