v1.29.0
Dragonfly v1.29.0
Important stability fixes and changes:
- Improvements and bug fixes around FT.Search: #4810 #4868 #4942 #4844 #4930 #4941#4837
- Lua stack buffer overflow crash #4853
- Reduce the negative effect of replication/slot migration on throughput and latency #4821 #4910
What's Changed
- fix: support dump for external objects by @romange in #4794
- feat: add sleep between migration connecting attempts by @BorysTheDev in #4798
- feat test: add test for pipeline queue overlimit by @adiholden in #4791
- fix(json_family): Fix memory tracking for JSON by @BagritsevichStepan in #4777
- fix(hset_family): Fix crash on scan after expiry set by @abhijat in #4802
- feat: ignore managed_service_info flag for cluster by @BorysTheDev in #4803
- fix(hll_family): Fixed PFMERGE wrong merge operation by @mkaruza in #4796
- chore(bptree): introduce ability comparing keys to non-key types by @romange in #4805
- chore(cluster_mgr): introduce SlotRange class by @romange in #4814
- fix: python tests were excluded for epoll case. by @vyavdoshenko in #4813
- feat(server): Add support for aliasing commands by @abhijat in #4782
- chore: remove pointer tagging for ScoreSdsPolicy by @romange in #4815
- chore: refactor debug populate by @romange in #4823
- fix: python test was excluded for epoll case. by @vyavdoshenko in #4824
- feat(dfly_bench): allow generation of keys without hashslots for set/get by @romange in #4818
- feat(dfly_bench): Handle moved slots in cluster by @mkaruza in #4761
- feat(cluster_mgr): add populate command by @romange in #4816
- feat(docker): push dragonfly image to gcp artifact registry by @Abhra303 in #4716
- fix(dfly_bench): Get MOVED error from parsed response by @mkaruza in #4827
- fix(pytest): Save into S3 temp directory by @mkaruza in #4806
- feat(server): flush slots traverse better yield by @adiholden in #4821
- fix: Backward compatibility for fields without the "@" sign in the FT.AGGREGATE command by @vyavdoshenko in #4810
- feat(command docs): Enable fallback tab completion in cli by @abhijat in #4842
- chore(zset_family/score_map): Replace sds arguments with string_view by @abhijat in #4738
- fix: Added query to log on error by @vyavdoshenko in #4843
- fix(replication_test): Temporary skip test_bug_in_json_memory_tracking test by @BagritsevichStepan in #4845
- refactor: rename cntx variable to exec_st by @BorysTheDev in #4847
- feat(metrics): Update metrics for aliased commands by @abhijat in #4819
- chore: turn on more logs for test_replication_timeout_on_full_sync by @BorysTheDev in #4848
- fix(rdb_load): Handle JSON loading failure when parsing fails by @BagritsevichStepan in #4801
- fix(snapshot): Append trailing slash for GCP by @mkaruza in #4846
- fix(lua) : Prevent Lua stack buffer overflow crash (#4853) by @KIMDONGYEON00 in #4854
- fix: increase timeout for test_replication_timeout_on_full_sync by @BorysTheDev in #4851
- fix(test): test_cluster_slot_ownership_changes by @adiholden in #4852
- fix(server_family): Remove redundant logging in the CLIENT command by @BagritsevichStepan in #4859
- fix test: test_cluster_slot_ownership_changes by @adiholden in #4865
- chore: Remove version attribute from compose file by @ajnart in #4869
- fix: FT.SEARCH commas support for ranges by @vyavdoshenko in #4844
- chore: turn on more logs for test_migration_timeout_on_sync by @BorysTheDev in #4870
- chore(search_family): Add logging for monostate queries by @BagritsevichStepan in #4872
- feat(server): SCAN command add ATTR options by @lichuang in #4766
- feat: Support synonyms in queries. Add FT.SYNUPDATE, FT.SYNDUMP by @vyavdoshenko in #4837
- feat(server): add connections send timeout by @adiholden in #4874
- fix: add version id for dev container builds by @romange in #4878
- fix: local dashboard show rapid changes in QPS by @romange in #4886
- fix: '@text:prefix*' matching for fields. by @vyavdoshenko in #4868
- fix: test_migration_rebalance_node by @BorysTheDev in #4891
- feat: debug compression by @romange in #4879
- fix: docker release should be updated latest version using semantic version of latest tag by @vyavdoshenko in #4887
- fix: lsn check failure by @kostasrim in #4881
- fix: skip heartbeat if shard is under global lock by @kostasrim in #4882
- fix: update timeout for connection test by @vyavdoshenko in #4895
- fix: make pause all for migration finalization by @BorysTheDev in #4897
- chore: test snapshot in replica while seeding master by @kostasrim in #4867
- feat(server): Move bumpup logic out of FindInternal by @mkaruza in #4877
- pytest: temporarily skip test while its failures are investigated by @abhijat in #4900
- test: tune test_cluster_migration_while_seeding to reduce false/posit… by @BorysTheDev in #4901
- fix: take_over_counters by @kostasrim in #4890
- fix(hset_family): Ensure empty hash sets are removed by @abhijat in #4873
- fix: test_replica_snapshot_with_big_values_while_seeding by @kostasrim in #4902
- fix(rdb): Print tag as int in error by @abhijat in #4908
- feat(server): Exit process if error is report during load snapshot by @mkaruza in #4907
- fix: invalid master_last_io_seconds_ago metric during stable sync by @vyavdoshenko in #4892
- fix(pytest): Remove invalid argument from pytest by @mkaruza in #4912
- fix(hset): Fix size account discrepancy when setting TTL by @abhijat in #4913
- perf: Added benchmarks for different operations in String Set. by @H4R5H1T-007 in #4866
- refactor: add ability to reinit incoming migration object by @BorysTheDev in #4756
- fix: cancel blocking command during migration finalization by @BorysTheDev in #4904
- fix(pytest): Wait exception on instance start and stop by @mkaruza in #4916
- chore: Cleanup DbSlice::CallChangeCallbacks by @mkaruza in #4917
- fix: Skip test_take_over_counters for epoll by @abhijat in #4919
- test: add logs for cluster_mgr_test.py by @BorysTheDev in #4920
- chore: improve SlotRanges::Merge algorithm by @BorysTheDev in #4921
- fix(stream_family): Fix memory tracking for the STREAMs. SECOND PR by @BagritsevichStepan in #4781
- fix(set_family): Update object time during SET FIELDEXPIRE by @mkaruza in #4903
- fix: Dropping stale connections updated by @vyavdoshenko in #4909
- fix: prefix search with added synonyms fixed by @vyavdoshenko in #4930
- fix: test_migration_timeout_on_sync by @BorysTheDev in #4933
- fix(connection): Close MONITOR connection if pipeline overflows by @mkaruza in #4889
- fix: ZRANGE with LIMIT parameters crash fixed by @vyavdoshenko in #4944
- server(bug): fix json mget crash on invalid path by @adiholden in #4940
- chore: Make snapshotting more responsive by @romange in #4910
- fix: broken gha cache by @romange in #4951
- docs(readme): fix typo in README.ko-KR.md by @dureamPark in #4949
- fix(set_family): Transfer TTL flag from DenseLink object in delete by @mkaruza in #4947
- chore: add metrics for heartbeat evictions by @kostasrim in #4952
- fix(search_family): Fix SORTBY option in FT.SEARCH for non-sortable fields and KNN search by @BagritsevichStepan in #4942
- feat: expose table capacities instead of number of buckets by @romange in #4956
- fix: field without @ sign in the FT.AGGREGATE command error message fixed by @vyavdoshenko in #4955
- feat: wildcard pattern added for fields to find all non-null values by @vyavdoshenko in #4941
- chore: pass max_squash_size for MultiCommandSquasher via option by @romange in #4960
- test: add check for removing readonly replica by @BorysTheDev in #4963
- feat (server): add flag max_squashed_cmd_num by @adiholden in #4964
Huge thanks to all the contributors! ❤️
New Contributors
- @KIMDONGYEON00 made their first contribution in #4854
- @ajnart made their first contribution in #4869
- @dureamPark made their first contribution in #4949
Full Changelog: v1.28.0...v1.29.0