v1.30.0
Dragonfly v1.30.0
Important stability fixes and changes:
- More JSON/SEARCH stability fixes: #4973 #5026 #5036 #5040
- Performance improvements around pipleining #4994
- Memcached suppport for GETS #5087 as well as supporting tls without authentication #5085
What's Changed
- feat(dfly_bench): allow regulated throughput in 3 modes by @romange in #4962
- feat(server): Add support for command aliasing by @abhijat in #4932
- fix: FT.SEARCH KNN crash fixed by @vyavdoshenko in #4973
- Add workflow to run mastodon ruby test suite by @abhijat in #4946
- chore(acl_family): Move some variables outside loop by @abhijat in #4975
- feat: availability_zone flag support was added by @vyavdoshenko in #4976
- chore(hset_family): Support resp3 format for hrandfield by @abhijat in #4978
- Fix test hypothesis by @cunla in #4927
- chore: time sensitive throttle for scan command by @kostasrim in #4954
- feat(tools/replay): Add pipeline latency distribution data by @Pothulapati in #4990
- refactor(debug-cmd): migrate ParsePopulateArgs to CmdArgParser by @XueSongTap in #4838
- fix: potential vulnerable cloned functions by @npt-1707 in #4996
- chore: split unit test steps in ci workflow by @kostasrim in #5002
- feat: allow sharding by cluster slot id by @romange in #5006
- fix: potential crash with multi-sharded pfmerge by @romange in #5008
- chore: Pipelining fixes by @romange in #4994
- fix: bitops_family crash fixed by @vyavdoshenko in #4989
- chore: fix some clang-tidy warnings by @romange in #5009
- chore: clean ups around command squasher by @romange in #5011
- chore: StoredCmd to support both owned and external arguments by @romange in #5010
- fix: RENAME in cluster mode crash by @vyavdoshenko in #4995
- fix: regtest failures by @romange in #5013
- fix(glob): Correctly match longer strings with '*' or '**' pattern by @mkaruza in #5001
- refactor: update contributing doc by @BorysTheDev in #5016
- fix: HNSW schema deleting document crash by @vyavdoshenko in #4987
- chore: add DCHECK to easier tests debugging by @BorysTheDev in #5018
- chore: polishing. put basic usage info to stdout using one call to a void messing lines by @vyavdoshenko in #5019
- feat(server): support partial sync from last master by @adiholden in #5015
- feat(pytest): Generate huge val string in seeder by @mkaruza in #4957
- fix: JSON.ARRPOP command crash fixed by @vyavdoshenko in #5026
- chore: more performance improvements around MGET and pipelining by @romange in #5022
- feat: add copy cmd by @BorysTheDev in #5032
- fix: json depth limit has been changed to 64 by @vyavdoshenko in #5036
- chore: show moving P99 latency in dfly_bench by @romange in #5027
- chore: get rid of possible recursion when unwinding structured reply by @romange in #5012
- fix: Support for additional flags in expireat, pexpire and pexpireat commands by @H4R5H1T-007 in #5007
- chore: bump up max_busy_read_usec in tests by @romange in #5039
- fix: make FreeMemWithEvictionStep atomic by @kostasrim in #4885
- fix(stream_family): Fix stream memory tracking issues by @BagritsevichStepan in #5024
- chore: skip failing test_migration_rebalance_node by @kostasrim in #5042
- chore: add dfly_bench to release workflow by @kostasrim in #5045
- refactor: add WARNING regarding max_client_iobuf_len flag usage by @BorysTheDev in #5029
- refactor: reduce number of cluster logs by @BorysTheDev in #5044
- chore(json_family): Clean up code. FIRST PR by @BagritsevichStepan in #5049
- fix: send response error for long sequence instead of command crash by @vyavdoshenko in #5048
- feat: introduce 'debug iostats' command by @romange in #5051
- fix: json.set recursive processing crash by @vyavdoshenko in #5040
- bug(server): fix lns mismatch in replication by @adiholden in #4967
- feat(dfly_bench): introduce connect only flow by @romange in #5052
- chore: skip test_bug_in_json_memory_tracking by @kostasrim in #5066
- feat(memory_cmd): Add WITHOUTKEY option for the MEMORY USAGE command. SECOND PR by @BagritsevichStepan in #5068
- chore: dash table clean ups by @romange in #5064
- chore: further extend the compression analysis by @romange in #5065
- fix(json_family): Fix memory tracking for the JSON.SET command. THIRD PR by @BagritsevichStepan in #5069
- chore: introduce huffman encoder class by @romange in #5076
- chore(metrics): add rdb_bgsave_in_progress and rdb_last_bgsave_status by @kostasrim in #5061
- chore: futher dash table clean ups by @romange in #5072
- chore: add password flag to dfly_bench by @kostasrim in #5074
- chore: reorganize compact object mask bits by @romange in #5077
- feat: add migrated keys statistic by @BorysTheDev in #5043
- chore: Add HuffmanDecoder class by @romange in #5078
- fix: remove code duplicate in GetSlice by @romange in #5079
- chore: allow skipping cluster probing by @romange in #5082
- feat: add huffman coding to compact object by @romange in #5080
- chore: allow setting huffman tables via DEBUG COMPRESSION SET by @romange in #5083
- fix: Support TLS for Memcached without password authentication by @vyavdoshenko in #5085
- test: tune test_cluster_migration_while_seeding by @BorysTheDev in #5088
- feat(memcache): Add support for GETS by @abhijat in #5087
- feat(github-workflow): upload dev binaries to artifact buckets by @Abhra303 in #5031
Huge thanks to all the contributors! ❤️
New Contributors
- @XueSongTap made their first contribution in #4838
- @npt-1707 made their first contribution in #4996
Full Changelog: v1.29.0...v1.30.0