Dragonfly v1.18.0
Some prominent changes include:
- ACL improvements: #2945 #2943 #2920 #2982 #2995
- Implementation of json.merge #2960
- Replication - memory improvements
- Very much alpha support for data tiering. Try it out with
--tiered_prefix=/pathto/ssd/base
and see how your memory usage goes down (STRING type only). Do not use it in prod! 😸
What's Changed
- feat: retry ACK if the configs are different #2833 by @BorysTheDev in #2906
- chore(tiering): Update Get, Set, Del by @dranikpg in #2897
- chore: preparation step for lock fingerprints by @romange in #2899
- fix(transaction): Use FinishHop in schedule by @dranikpg in #2911
- chore(tiering): Fix MacOs build by @dranikpg in #2913
- feat(cluster): Migration cancellation support by @chakaz in #2869
- feat: process migration data after FIN opcode #2864 by @BorysTheDev in #2918
- chore(string_family): Refactor SetCmd by @dranikpg in #2919
- fix: Improve reply latency of HELLO by @romange in #2925
- chore: improve reply latency of SendScoredArray by @romange in #2929
- Namespace support in prometheus rule by @Pothulapati in #2931
- fix: socket closed when RegisterOnErrorCb is called in HandleRequests by @kostasrim in #2932
- chore: bring more clarity when replayer fails by @romange in #2933
- Slot migration cancel crash fix by @BorysTheDev in #2934
- feat: add ability reaply config with migration #2924 by @BorysTheDev in #2926
- fix(test): Unflake fuzzy cluster migration test by @chakaz in #2927
- chore: Remove Schedule() call by @romange in #2938
- chore: get rid of lock keys by @romange in #2894
- fix: introduce info_replication_valkey_compatible flag by @romange in #2936
- feat(metrics): adding max_clients to metrics and info output (#2912) by @racamirko in #2940
- chore: adjust transaction code to keystep/3 commands by @romange in #2941
- feat(tiering): Get, GetSet, Set test by @dranikpg in #2921
- chore(acl): adjust some ACL command responses by @Niennienzz in #2943
- chore: Pull helio with new future by @dranikpg in #2944
- refactor: add cluster namespace by @BorysTheDev in #2948
- chore: Introduce ShardArgs as a distinct type by @romange in #2952
- chore: Log db_index in traffic logger by @dranikpg in #2951
- fixes for v1.18.0 by @adiholden in #2956
- feat(tiering): Support append (and modifications in general) by @dranikpg in #2949
- feat: extended bracket index in jsonpath by @romange in #2954
- chore: Remove TieringV1 by @dranikpg in #2962
- fix(pytests): replace proc.wait() with proc.communicate() to avoid deadlocks by @kostasrim in #2964
- feat(tiering): Registered buffers by @dranikpg in #2967
- feat: add slot migration error processing by @BorysTheDev in #2957
- chore(acl): allow multiple users in acl deluser by @kostasrim in #2945
- feat: implement json.merge by @romange in #2960
- fix: fix deadlock and slot flush for migration cancel #2968 by @BorysTheDev in #2972
- chore(tiering): Lots of metrics by @dranikpg in #2977
- fix: crash during migration when connection is closing by @kostasrim in #2973
- fix: remove acl-check and cancel instead when REPLCONF ACK fails to validate by @kostasrim in #2920
- fix: check return code of process after communicate by @kostasrim in #2976
- fix: allow non hashed passwords when loading users from acl file by @kostasrim in #2982
- chore: update our container distributions versions by @romange in #2983
- chore: remove version checks when running our regtests by @romange in #2988
- chore(acl): add vlog and check on deluser flow by @kostasrim in #2995
- fix(memcached): Register memcached listener to handle
--maxclients
by @chakaz in #2985 - chore: another preparation commit to get rid of kv_args in transaction by @romange in #2996
- chore: improve performance of Scan operation by @romange in #2990
- fix(server): small string allocations only under 256 bytes str by @adiholden in #2991
- fix(cluster-migration): Support cancelling migration right after starting it by @chakaz in #2992
- chore: fix double header issue by @romange in #3002
- chore: small tiering fixes by @dranikpg in #2966
- feat(benchmark-tests): run in K8s by @zacharya19 in #2965
- Benchmark fixes by @zacharya19 in #3005
- fix(tiering): rename v2 + max_file_size by @dranikpg in #3004
- chore: fix tiering macos stub by @dranikpg in #3006
- chore: export listener stats by @romange in #3007
- chore: pull latest helio by @romange in #3009
- fix(server): lag is 0 when server not in stable state by @adiholden in #3010
- chore: get rid of kv_args and replace it with slices to full_args by @romange in #2942
- fix(server): non auto journal write after callback finish by @adiholden in #3016
- fix(server): shrink replication steaming buf by @adiholden in #3012
- fix(zset): fix random in ZRANDMEMBER command by @BagritsevichStepan in #2994
- Fix benchmark by @adiholden in #3017
- chore: Remove tiering test skip by @dranikpg in #3011
- feat(tiering): simple offload loop by @dranikpg in #2987
- feat(tiering): MGET support by @dranikpg in #3013
- Revert "chore: get rid of kv_args and replace it with slices to full_… by @romange in #3024
- chore(dash): Replace comparator with predicate by @dranikpg in #3025
- feat: add defragment command by @BorysTheDev in #3003
Huge thanks to all the contributors! ❤️
New Contributors
- @racamirko made their first contribution in #2940
- @BagritsevichStepan made their first contribution in #2994
Full Changelog: v1.17.0...v1.18.0