Refactor update config to use automatic retry of failed nodes for cluster fan out.#391
Open
ArgusLi wants to merge 5 commits into
Open
Refactor update config to use automatic retry of failed nodes for cluster fan out.#391ArgusLi wants to merge 5 commits into
ArgusLi wants to merge 5 commits into
Conversation
Signed-off-by: Argus Li <argus@argusli.dev>
Signed-off-by: Argus Li <argus@argusli.dev>
Signed-off-by: Argus Li <argus@argusli.dev>
Collaborator
|
How would multiple users sharing the same Valkey deployment be impacted with config aborts? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Rework cluster fanout end-to-end so:
attempting,retrying,succeeded,failed,not_attempted.attemptingis for nodes that are actively attempting.retryingis for nodes whose last attempt failed and are waiting out the backoff delay.succeededis for nodes that have succeeded.failedis for nodes that have failed and have exhausted all retries.not_attemptedis for nodes that have no resgistered metrics process and will not be retried.sendConfigReply). The reply is keyed by oneAggregateReplyIdarm (clusterIdfor a cluster, db-lessnodeIdfor a standalone) and carries:outcome:fulfilledwhen every attempted node succeeded,failedwhen any attempted node failed,not_attemptedwhen no targeted node had a registered metrics process;nodeResults(one per attempted node) and thenotAttemptedNodeIds;fulfilledonly, the echoedappliedConfig.On the wire this is just two message types:
updateConfigFulfilled(sent only forfulfilled) andupdateConfigFailed(sent for bothfailedandnot_attempted).