Dragonfly v1.23.0
Some prominent changes include:
- Fix container healthchecks for both privileged and non-privileged environments #3644
- Fix FT.AGGREGATE command (#3657 #3660 )
- Fix regression with the S3 access #3717
- Added ZRANGESTORE command #3757
- introduce
rss_oom_deny_ratio
flag (#3702) - now Dragonfly will reject write commands if its RSS memory usage
crossesmaxmemory*rss_oom_deny_ratio
. The default value of this flag is set to 1.25. - Support for "CLIENT ID" and "CLIENT SETINFO" commands (#3673 and #3672)
- Better memory tracking for JSON objects (#3641)
What's Changed
- fix(docker/healthcheck): run netstat port retreival command as dfly by @Pothulapati in #3647
- test: remove redundant tests by @cunla in #3642
- chore: allow disabling io_uring registered buffers by @romange in #3650
- CmdArgParser improvement by @BorysTheDev in #3633
- fix: deadlock in the cluster migration process by @BorysTheDev in #3653
- fix: fix multi mget exec error message by @BorysTheDev in #3662
- test: fix MC test_expiration by @BorysTheDev in #3663
- chore: add some community suggestions to README by @Niennienzz in #3664
- fix: recursive calls in the allocation tracker by @romange in #3665
- chore: cosmetic changes around Snapshot functions by @romange in #3652
- fix(search_family): Fix FT.AGGREGATE GROUPBY option by @BagritsevichStepan in #3657
- chore: Add
CLIENT ID
command by @chakaz in #3672 - deprecate RecordsPopper and serialize channel records during push by @romange in #3667
- feat(server): Support
CLIENT SETINFO
by @chakaz in #3673 - server logs: change script error to warning by @adiholden in #3670
- fix(search_family): Fix LOAD option behavior in the FT.AGGREGATE command by @BagritsevichStepan in #3660
- test: unskip cluster tests and add debug info by @BorysTheDev in #3681
- chore: adjust RdbChannel sizes by @romange in #3676
- chore: add a script that parses allocator tracking logs by @romange in #3687
- chore: limit number of descriptors in the exec map by @romange in #3688
- fix(server): fix replication master deadlock on cancelation flow by @adiholden in #3686
- fix: join for cancel incoming migration by @BorysTheDev in #3692
- fix(json_family): Fix the JSON.SET bug if the path is in legacy mode and is not the root by @BagritsevichStepan in #3693
- fix: test_acl_revoke_pub_sub_while_subscribed by @kostasrim in #3680
- test: fix test_cluster_replication_migration by @BorysTheDev in #3699
- fix: test_replicaof_reject_on_load assert failure by @kostasrim in #3697
- fix(json_family) Add NOESCAPE option to the JSON.GET command by @BagritsevichStepan in #3685
- chore: pull latest helio by @kostasrim in #3700
- feat(core): Support RISCV RVV by @howjmay in #3655
- fix: allow parsing extra spaces on acl files by @kostasrim in #3703
- Update dflycluster slot-migration-status reply by @BorysTheDev in #3707
- chore: add clone benchmark by @romange in #3709
- fix: add default value has_mc_flag field by @BorysTheDev in #3710
- chore: symbolize stack traces in tests upon crash by @romange in #3714
- fix: fix s3 load snapshot by @andydunstall in #3717
- fix(cluster): Do not
Pause()
replication / migrations by @chakaz in #3716 - chore: add log info on failed commands by @kostasrim in #3694
- chore: enable ReplyGuard in ReplyBuilder2 by @kostasrim in #3705
- tests: fix and enable s3 snapshot test by @andydunstall in #3720
- fix(json_family): Fix JSON.ARRPOP command in legacy mode should not return WRONGTYPE error by @BagritsevichStepan in #3683
- fix(json_family): Separate double and int values during the comparison of the JSON objects by @BagritsevichStepan in #3711
- fix: Fix test
test_client_pause_with_replica
by @chakaz in #3729 - fix: Fix
cluster_mgr.py
by @chakaz in #3730 - fix: Fix
test_take_over_seeder
by @chakaz in #3733 - chore: Remove ReqSerializer by @dranikpg in #3721
- fix(json_family): Fix out of bound ranges for the JSON.ARR* commands by @BagritsevichStepan in #3712
- fix: properly track json memory usage by @kostasrim in #3641
- test: add tests for replication by @BorysTheDev in #3734
- test: unskip test for debugging purpose by @BorysTheDev in #3738
- refactor: use CmdArgParser for XGROUP command by @BorysTheDev in #3739
- test: add test for replication deadlock on replication timeout by @adiholden in #3691
- chore: Switch ports for
cluster_mgr_test.py
by @chakaz in #3741 - chore: change log level to warning for empty keys by @kostasrim in #3722
- chore: add SetReplies by @dranikpg in #3727
- chore: introduce a Clone function for the dense set by @romange in #3740
- chore: add missing await in test_take_over_seeder by @kostasrim in #3744
- fix: allow the healthcheck run in non-privileged containers as well by @romange in #3731
- fix: add value range check for SETBIT command by @BorysTheDev in #3750
- fix: zset store conclude transaction on error by @andydunstall in #3755
- chore: refactor a lambda function into a named one by @romange in #3753
- chore: fix return on bad status by @dranikpg in #3758
- feat(helm): add hostNetwork, topologySpreadConstraint and clusterIP su… by @katapultcloud in #3389
- feat(server): introduce oom_deny_commands flag by @adiholden in #3718
- feat(server): introduce rss oom limit by @adiholden in #3702
- fix: test deadlock with processing the stdout of sed by @romange in #3735
- chore: add integrity checks to consumer->pel by @romange in #3754
- fix: make snapshotting process more responsive by @romange in #3759
- fix: tune test_replicaof_reject_on_load parameters by @romange in #3762
- chore: logs on assert fail for test_acl_cat_commands_multi_exec_squash by @kostasrim in #3749
- chore: add more error logs around ziplist parsing checks by @romange in #3764
- fix: substr/getrange result for invalid range by @BorysTheDev in #3766
- feat(zset_family): add ZRANGESTORE by @andydunstall in #3757
- fix server: fix last error reply by @adiholden in #3728
- chore: give up on InlinedVector due to spurious warnings with optional by @romange in #3765
- fix: mark pubusb commands as unsupported for cluster by @BorysTheDev in #3767
- chore: some renames + fix a typo in RETURN_ON_BAD_STATUS by @romange in #3763
- fix: setrange with empty value doesn't modify the DB by @BorysTheDev in #3771
New Contributors
- @howjmay made their first contribution in #3655
- @katapultcloud made their first contribution in #3389
Huge thanks to all the contributors! ❤️
Full Changelog: v1.22.0...v1.23.0