-
Notifications
You must be signed in to change notification settings - Fork 876
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(cluster): Migration cancellation support #2869
Conversation
@@ -19,6 +19,7 @@ enum class MigrationState : uint8_t { | |||
C_CONNECTING, | |||
C_SYNC, | |||
C_FINISHED, | |||
C_CANCELLED, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you need it? If we cancel migration we should remove it at all
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the usage near calling FinishMigration()
, although I'm open to suggestions here :)
src/server/cluster/cluster_family.cc
Outdated
@@ -736,8 +738,18 @@ void ClusterFamily::RemoveOutgoingMigrations(const std::vector<MigrationInfo>& m | |||
auto it = std::find_if(outgoing_migration_jobs_.begin(), outgoing_migration_jobs_.end(), | |||
[&m](const auto& om) { return m == om->GetMigrationInfo(); }); | |||
DCHECK(it != outgoing_migration_jobs_.end()); | |||
DCHECK(it->get() != nullptr); | |||
OutgoingMigration& migration = *it->get(); | |||
if (migration.GetState() != MigrationState::C_FINISHED) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can cancel even finished migration
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
state can be changed in the different thread
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can cancel even finished migration
Not really, it requires unregistering from db slice, for which we may have not registered to (like in the case of the first config assignment)
state can be changed in the different thread
Do you mean that there could be a race here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I want to say that we shouldn't check for FINISH or should do it under lock
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both checks are done under migration_mu_
- is there another lock I should use?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
migration_mu_ is used to create migrations, but state is changed inside migration
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There doesn't seem to be a lock which locks the inner fiber's state changes at all, right?
src/server/cluster/cluster_family.cc
Outdated
SlotSet removed = migration_slots.GetRemovedSlots(tl_cluster_config->GetOwnedSlots()); | ||
|
||
// First cancel socket, then flush slots, so that new entries won't arrive after we flush. | ||
if (migration.GetState() != MigrationState::C_FINISHED) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
state can be changed in the different thread so we don't know is it finished or not when you do cancel
if (const auto* shard = EngineShard::tlocal(); shard) { | ||
if (auto& flow = shard_flows_[shard->shard_id()]; flow) { | ||
flow->Cancel(); | ||
} | ||
} | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can not use shard_id for incoming migrations, we don't know where every flow is executed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you are right! good catch
furthermore, this isn't even needed, inside the inner Cancel() I forward to the correct proactor.
…nfly ( v1.17.1 → v1.18.0 ) (#539) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [docker.dragonflydb.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly) | minor | `v1.17.1` -> `v1.18.0` | --- ### Release Notes <details> <summary>dragonflydb/dragonfly (docker.dragonflydb.io/dragonflydb/dragonfly)</summary> ### [`v1.18.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.18.0) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.17.1...v1.18.0) ##### Dragonfly v1.18.0 Some prominent changes include: - ACL improvements: [#​2945](https://togithub.com/dragonflydb/dragonfly/issues/2945) [#​2943](https://togithub.com/dragonflydb/dragonfly/issues/2943) [#​2920](https://togithub.com/dragonflydb/dragonfly/issues/2920) [#​2982](https://togithub.com/dragonflydb/dragonfly/issues/2982) [#​2995](https://togithub.com/dragonflydb/dragonfly/issues/2995) - Implementation of json.merge [#​2960](https://togithub.com/dragonflydb/dragonfly/issues/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](https://togithub.com/dragonflydb/dragonfly/issues/2833) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2906 - chore(tiering): Update Get, Set, Del by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2897 - chore: preparation step for lock fingerprints by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2899 - fix(transaction): Use FinishHop in schedule by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2911 - chore(tiering): Fix MacOs build by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2913 - feat(cluster): Migration cancellation support by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2869 - feat: process migration data after FIN opcode [#​2864](https://togithub.com/dragonflydb/dragonfly/issues/2864) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2918 - chore(string_family): Refactor SetCmd by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2919 - fix: Improve reply latency of HELLO by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2925 - chore: improve reply latency of SendScoredArray by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2929 - Namespace support in prometheus rule by [@​Pothulapati](https://togithub.com/Pothulapati) in [dragonflydb/dragonfly#2931 - fix: socket closed when RegisterOnErrorCb is called in HandleRequests by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2932 - chore: bring more clarity when replayer fails by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2933 - Slot migration cancel crash fix by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2934 - feat: add ability reaply config with migration [#​2924](https://togithub.com/dragonflydb/dragonfly/issues/2924) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2926 - fix(test): Unflake fuzzy cluster migration test by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2927 - chore: Remove Schedule() call by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2938 - chore: get rid of lock keys by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2894 - fix: introduce info_replication_valkey_compatible flag by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2936 - feat(metrics): adding max_clients to metrics and info output ([#​2912](https://togithub.com/dragonflydb/dragonfly/issues/2912)) by [@​racamirko](https://togithub.com/racamirko) in [dragonflydb/dragonfly#2940 - chore: adjust transaction code to keystep/3 commands by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2941 - feat(tiering): Get, GetSet, Set test by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2921 - chore(acl): adjust some ACL command responses by [@​Niennienzz](https://togithub.com/Niennienzz) in [dragonflydb/dragonfly#2943 - chore: Pull helio with new future by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2944 - refactor: add cluster namespace by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2948 - chore: Introduce ShardArgs as a distinct type by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2952 - chore: Log db_index in traffic logger by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2951 - fixes for v1.18.0 by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#2956 - feat(tiering): Support append (and modifications in general) by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2949 - feat: extended bracket index in jsonpath by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2954 - chore: Remove TieringV1 by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2962 - fix(pytests): replace proc.wait() with proc.communicate() to avoid deadlocks by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2964 - feat(tiering): Registered buffers by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2967 - feat: add slot migration error processing by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2957 - chore(acl): allow multiple users in acl deluser by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2945 - feat: implement json.merge by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2960 - fix: fix deadlock and slot flush for migration cancel [#​2968](https://togithub.com/dragonflydb/dragonfly/issues/2968) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2972 - chore(tiering): Lots of metrics by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2977 - fix: crash during migration when connection is closing by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2973 - fix: remove acl-check and cancel instead when REPLCONF ACK fails to validate by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2920 - fix: check return code of process after communicate by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2976 - fix: allow non hashed passwords when loading users from acl file by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2982 - chore: update our container distributions versions by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2983 - chore: remove version checks when running our regtests by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2988 - chore(acl): add vlog and check on deluser flow by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2995 - fix(memcached): Register memcached listener to handle `--maxclients` by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2985 - chore: another preparation commit to get rid of kv_args in transaction by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2996 - chore: improve performance of Scan operation by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2990 - fix(server): small string allocations only under 256 bytes str by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#2991 - fix(cluster-migration): Support cancelling migration right after starting it by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2992 - chore: fix double header issue by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3002 - chore: small tiering fixes by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2966 - feat(benchmark-tests): run in K8s by [@​zacharya19](https://togithub.com/zacharya19) in [dragonflydb/dragonfly#2965 - Benchmark fixes by [@​zacharya19](https://togithub.com/zacharya19) in [dragonflydb/dragonfly#3005 - fix(tiering): rename v2 + max_file_size by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3004 - chore: fix tiering macos stub by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3006 - chore: export listener stats by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3007 - chore: pull latest helio by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3009 - fix(server): lag is 0 when server not in stable state by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3010 - chore: get rid of kv_args and replace it with slices to full_args by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2942 - fix(server): non auto journal write after callback finish by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3016 - fix(server): shrink replication steaming buf by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3012 - fix(zset): fix random in ZRANDMEMBER command by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [dragonflydb/dragonfly#2994 - Fix benchmark by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3017 - chore: Remove tiering test skip by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3011 - feat(tiering): simple offload loop by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2987 - feat(tiering): MGET support by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3013 - Revert "chore: get rid of kv_args and replace it with slices to full\_… by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3024 - chore(dash): Replace comparator with predicate by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3025 - feat: add defragment command by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#3003 ##### Huge thanks to all the contributors! ❤️ ##### New Contributors - [@​racamirko](https://togithub.com/racamirko) made their first contribution in [dragonflydb/dragonfly#2940 - [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) made their first contribution in [dragonflydb/dragonfly#2994 **Full Changelog**: dragonflydb/dragonfly@v1.17.0...v1.18.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM1Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: kireque-bot[bot] <143391978+kireque-bot[bot]@users.noreply.github.com>
…18.0 ) (#4656) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly) | minor | `v1.17.1` -> `v1.18.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>dragonflydb/dragonfly (ghcr.io/dragonflydb/dragonfly)</summary> ### [`v1.18.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.18.0) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.17.1...v1.18.0) ##### Dragonfly v1.18.0 Some prominent changes include: - ACL improvements: [#​2945](https://togithub.com/dragonflydb/dragonfly/issues/2945) [#​2943](https://togithub.com/dragonflydb/dragonfly/issues/2943) [#​2920](https://togithub.com/dragonflydb/dragonfly/issues/2920) [#​2982](https://togithub.com/dragonflydb/dragonfly/issues/2982) [#​2995](https://togithub.com/dragonflydb/dragonfly/issues/2995) - Implementation of json.merge [#​2960](https://togithub.com/dragonflydb/dragonfly/issues/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](https://togithub.com/dragonflydb/dragonfly/issues/2833) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2906 - chore(tiering): Update Get, Set, Del by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2897 - chore: preparation step for lock fingerprints by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2899 - fix(transaction): Use FinishHop in schedule by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2911 - chore(tiering): Fix MacOs build by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2913 - feat(cluster): Migration cancellation support by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2869 - feat: process migration data after FIN opcode [#​2864](https://togithub.com/dragonflydb/dragonfly/issues/2864) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2918 - chore(string_family): Refactor SetCmd by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2919 - fix: Improve reply latency of HELLO by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2925 - chore: improve reply latency of SendScoredArray by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2929 - Namespace support in prometheus rule by [@​Pothulapati](https://togithub.com/Pothulapati) in [dragonflydb/dragonfly#2931 - fix: socket closed when RegisterOnErrorCb is called in HandleRequests by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2932 - chore: bring more clarity when replayer fails by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2933 - Slot migration cancel crash fix by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2934 - feat: add ability reaply config with migration [#​2924](https://togithub.com/dragonflydb/dragonfly/issues/2924) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2926 - fix(test): Unflake fuzzy cluster migration test by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2927 - chore: Remove Schedule() call by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2938 - chore: get rid of lock keys by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2894 - fix: introduce info_replication_valkey_compatible flag by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2936 - feat(metrics): adding max_clients to metrics and info output ([#​2912](https://togithub.com/dragonflydb/dragonfly/issues/2912)) by [@​racamirko](https://togithub.com/racamirko) in [dragonflydb/dragonfly#2940 - chore: adjust transaction code to keystep/3 commands by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2941 - feat(tiering): Get, GetSet, Set test by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2921 - chore(acl): adjust some ACL command responses by [@​Niennienzz](https://togithub.com/Niennienzz) in [dragonflydb/dragonfly#2943 - chore: Pull helio with new future by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2944 - refactor: add cluster namespace by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2948 - chore: Introduce ShardArgs as a distinct type by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2952 - chore: Log db_index in traffic logger by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2951 - fixes for v1.18.0 by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#2956 - feat(tiering): Support append (and modifications in general) by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2949 - feat: extended bracket index in jsonpath by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2954 - chore: Remove TieringV1 by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2962 - fix(pytests): replace proc.wait() with proc.communicate() to avoid deadlocks by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2964 - feat(tiering): Registered buffers by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2967 - feat: add slot migration error processing by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2957 - chore(acl): allow multiple users in acl deluser by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2945 - feat: implement json.merge by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2960 - fix: fix deadlock and slot flush for migration cancel [#​2968](https://togithub.com/dragonflydb/dragonfly/issues/2968) by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#2972 - chore(tiering): Lots of metrics by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2977 - fix: crash during migration when connection is closing by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2973 - fix: remove acl-check and cancel instead when REPLCONF ACK fails to validate by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2920 - fix: check return code of process after communicate by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2976 - fix: allow non hashed passwords when loading users from acl file by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2982 - chore: update our container distributions versions by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2983 - chore: remove version checks when running our regtests by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2988 - chore(acl): add vlog and check on deluser flow by [@​kostasrim](https://togithub.com/kostasrim) in [dragonflydb/dragonfly#2995 - fix(memcached): Register memcached listener to handle `--maxclients` by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2985 - chore: another preparation commit to get rid of kv_args in transaction by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2996 - chore: improve performance of Scan operation by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2990 - fix(server): small string allocations only under 256 bytes str by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#2991 - fix(cluster-migration): Support cancelling migration right after starting it by [@​chakaz](https://togithub.com/chakaz) in [dragonflydb/dragonfly#2992 - chore: fix double header issue by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3002 - chore: small tiering fixes by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2966 - feat(benchmark-tests): run in K8s by [@​zacharya19](https://togithub.com/zacharya19) in [dragonflydb/dragonfly#2965 - Benchmark fixes by [@​zacharya19](https://togithub.com/zacharya19) in [dragonflydb/dragonfly#3005 - fix(tiering): rename v2 + max_file_size by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3004 - chore: fix tiering macos stub by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3006 - chore: export listener stats by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3007 - chore: pull latest helio by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3009 - fix(server): lag is 0 when server not in stable state by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3010 - chore: get rid of kv_args and replace it with slices to full_args by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#2942 - fix(server): non auto journal write after callback finish by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3016 - fix(server): shrink replication steaming buf by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3012 - fix(zset): fix random in ZRANDMEMBER command by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [dragonflydb/dragonfly#2994 - Fix benchmark by [@​adiholden](https://togithub.com/adiholden) in [dragonflydb/dragonfly#3017 - chore: Remove tiering test skip by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3011 - feat(tiering): simple offload loop by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#2987 - feat(tiering): MGET support by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3013 - Revert "chore: get rid of kv_args and replace it with slices to full\_… by [@​romange](https://togithub.com/romange) in [dragonflydb/dragonfly#3024 - chore(dash): Replace comparator with predicate by [@​dranikpg](https://togithub.com/dranikpg) in [dragonflydb/dragonfly#3025 - feat: add defragment command by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [dragonflydb/dragonfly#3003 ##### Huge thanks to all the contributors! ❤️ ##### New Contributors - [@​racamirko](https://togithub.com/racamirko) made their first contribution in [dragonflydb/dragonfly#2940 - [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) made their first contribution in [dragonflydb/dragonfly#2994 **Full Changelog**: dragonflydb/dragonfly@v1.17.0...v1.18.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM1Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: lumiere-bot[bot] <98047013+lumiere-bot[bot]@users.noreply.github.com>
No description provided.