Highlights
Note that RocksDB has been upgraded from v9.3.1 to v9.10.0 in this version.
We are excited to announce the release of Kvrocks Search in this version, which gives Kvrocks the ability of secondary indexing and structured querying. You can find detailed information on the website. Please note that this feature is still experimental, and you can provide feedback through GitHub Issues if you encounter any problems.
New Features
- feat: support histograms for command latency statistics by @rabunkosar-dd in #2721
- feat(search): support the FT.TAGVALS command by @jonathanc-n in #2564
- feat(worker): Allow passing a socket FD to dup and listen on by @nathanlo-hrt in #2598
- feat(config): support retrieving configuration fields using glob patterns by @sryanyuan in #2592
- feat(config): add
rocksdb.wal_compression
to allow enable wal compression by @paragor in #2607 - feat(config): add
rocksdb.compression_start_level
to allow configure levels without compression by @paragor in #2605 - feat(keys, scan): Support arbitrary glob patterns by @nathanlo-hrt in #2608
- feat(cluster): add support of the JSON type in cluster migration by @git-hulk in #2654
- feat(config): make rocksdb.dump_malloc_stats configurable by @nathanlo-hrt in #2658
- feat(cmd, config): support REPLICAOF command and replicaof config option by @PragmaTwice in #2678
- feat: skip block cache deallocation to make shutdown fast by @wanghenshui in #2683
- feat(config): add the
partition_filters
option to disable the partitioned filters by @fukua95 in #2688
Improvements
- feat(command): add slow flag to more commands by @PragmaTwice in #2570
- feat(json): change default max_nesting_depth to 1024 by @PragmaTwice in #2572
- feat(search): add field options and definition part to FT.INFO by @PragmaTwice in #2571
- feat(conn): move time-consuming ops out of ExecuteCommand for context by @PragmaTwice in #2611
- feat(config): Minor update comment for compression_start_level error code by @mapleFU in #2615
- feat(cmd): avoid to use CommandAttributes::flags directly by @PragmaTwice in #2619
- feat(cmd): make key range fields private in CommandAttributes by @PragmaTwice in #2621
- feat(resp): optimize simple string "OK" construction by @RiversJin in #2627
- feat(status): support rocksdb::Status fowarding in GET_OR_RET by @PragmaTwice in #2630
- feat(cmd): add blocking flag and remove useless flags by @PragmaTwice in #2637
- feat(search): add mutex to HNSW index updating by @PragmaTwice in #2649
- feat(search): print properties for vector field in FT.INFO by @PragmaTwice in #2655
- feat(cmd): all blocking commands should be no-script by @PragmaTwice in #2666
- feat(cmd): add the auth flag for authentication checking by @PragmaTwice in #2669
- feat(conn): avoid to check the command name directly by @PragmaTwice in #2668
- feat(cmd): add more information to shutdown log by @PragmaTwice in #2672
- feat(conn): allow CONFIG in stale-data replica by @PragmaTwice in #2677
- feat(search): add TAGGED as an alternative syntax to HASTAG by @PragmaTwice in #2692
- feat(search): trim whitespaces in tag values by @PragmaTwice in #2702
- refactor: promote the
engine::Context
in theExecute
by @PokIsemaine in #2586 - refactor: hoist key mutexes to ExecuteCommands by @PokIsemaine in #2620
- refactor: initialize google logger after parsing options by @aleksraiden in #2664
- refactor: reduce memory copying during incremental synchronization by @RiversJin in #2689
- refactor: move rdb related code to
storage/rdb
folder by @LindaSummer in #2595 - perf(cluster): add upper bound for scan during migration by @RiversJin in #2724
Bug Fixes
- fix: Better checking for prefix matches by @nathanlo-hrt in #2599
- fix(command): wrong key range in commands: DISK/MEMORY/DUMP by @git-hulk in #2623
- fix(cmd): add exclusive flag to FLUSHDB/FLUSHALL by @PragmaTwice in #2624
- fix(script): avoid SetCurrentConnection on read-only scripting by @PragmaTwice in #2640
- fix(cluster): should remove the master if it's not node in the cluster by @git-hulk in #2643
- fix(bugfix): for txn_write_batch creation by @mapleFU in #2648
- fix(log): fix rocksdb stall condition string output by @mapleFU in #2651
- fix(cmd): args should be parsed before retrieving keys in COMMAND GETKEYS by @PragmaTwice in #2661
- fix(stream): add
KeyRangeGen
forXRead
andXReadGroup
by @LindaSummer in #2657 - fix(cmd): always print ok log when get full data file info failed by @sryanyuan in #2663
- fix(replication): slave blocks until keepalive timer is reached when master is gone without fin/rst notification by @sryanyuan in #2662
- fix(string): reset the value of expired key for incrby cmd by @FishYoung in #2667
- fix(string): reset the value of expired key for SETRANGE cmd by @weim0000 in #2686
- fix(cluster): should stop the migration if it's changed to the slave role by @RiversJin in #2716
Misc
- chore: bump jsoncons to v0.177.0 by @aleksraiden in #2493
- chore(search): update README to add some references for KQIR by @PragmaTwice in #2581
- chore: Bump cpptrace to v0.7.2 by @aleksraiden in #2585
- chore: add branch 2.10 as a protected branch in .asf.yaml by @PragmaTwice in #2591
- chore: Bump rocksdb to v9.7.2 by @aleksraiden in #2600
- chore: bump oneTBB to v2022.0.0 by @aleksraiden in #2632
- chore: bump jsoncons to v0.178.0 by @aleksraiden in #2631
- chore: Add devcontainer config for Kvrocks by @what-is-me in #2634
- chore: bump rocksdb to v9.7.4 by @aleksraiden in #2639
- chore(cmd): add comments for command flags by @PragmaTwice in #2641
- chore(search): improve code structure of IndexManager by @PragmaTwice in #2650
- chore(enhancement): rename is_txn_mode to txn_context_enabled by @mapleFU in #2644
- chore: bump cpptrace to v0.7.3 by @aleksraiden in #2670
- chore: bump glog to 0.7.1 by @aleksraiden in #2106
- chore: bump rocksdb to v9.8.4 by @aleksraiden in #2687
- chore: add move assign operator for MultiLockGuard by @PragmaTwice in #2693
- chore: bump rocksdb to v9.9.3 by @aleksraiden in #2694
- chore: bump cpptrace to v0.7.4 by @aleksraiden in #2696
- chore: bump fmtlib to 11.1.0 by @aleksraiden in #2698
- chore: bump fmtlib to v11.1.1 by @aleksraiden in #2699
- chore: bump xxhash to v0.8.3 by @aleksraiden in #2700
- chore: bump jsoncons to v1.0.0 by @aleksraiden in #2704
- chore: bump rocksdb to v9.10.0 by @aleksraiden in #2705
- chore: bump cpptrace to v0.7.5 by @aleksraiden in #2709
- chore(tests): use built-in min and max by @fukua95 in #2718
- chore: bump fmtlib to 11.1.2 by @aleksraiden in #2720
- chore: bump jsoncons to v1.1.0 by @aleksraiden in #2719
- docs: Add Kvrocks' Zulip URL to README by @PragmaTwice in #2588
- docs: remove the Slack invitation link from README.md by @git-hulk in #2593
- test(integration): add integration test for master lost during syncing sst files. by @LindaSummer in #2691
- test: update go deps by @aleksraiden in #2710
- test: get rid of external dependency by implementing generic Min/Max functions by @torwig in #2713
CI & Build
- ci: disable kvrocks2redis test for archlinux by @PragmaTwice in #2575
- ci: update github actions by @aleksraiden in #2584
- ci: update crate-ci/typos to 1.27.0 by @aleksraiden in #2645
- ci: update sonarcloud-github-c-cpp to v3 by @aleksraiden in #2646
- ci: update deps in gotest by @aleksraiden in #2653
- ci: bump crate-ci/typos to 1.28 by @aleksraiden in #2680
- ci: bump redis-py to 5.2.0 by @aleksraiden in #2681
- ci: bump gotest testify to v1.10.0 by @aleksraiden in #2682
- ci: bump crate-ci/typos action to 1.28.4 by @aleksraiden in #2697
- ci: bump golangcilinter to 1.63.3 by @aleksraiden in #2707
- ci: bump crate-ci/typos to 1.29.4 by @aleksraiden in #2711
- ci: add arm64 linux pipeline by @PragmaTwice in #2590
- build: add concurrent level option for make while ninja is used by @PragmaTwice in #2701
New Contributors
- @nathanlo-hrt made their first contribution in #2566
- @sryanyuan made their first contribution in #2589
- @RiversJin made their first contribution in #2627
- @what-is-me made their first contribution in #2634
- @FishYoung made their first contribution in #2667
- @weim0000 made their first contribution in #2686
- @fukua95 made their first contribution in #2688
- @rabunkosar-dd made their first contribution in #2721
Full Changelog: v2.10.1...v2.11.0-rc1