Submit batches of joins as single tasks#83803
Merged
elasticsearchmachine merged 3 commits intoelastic:masterfrom Feb 11, 2022
Merged
Submit batches of joins as single tasks#83803elasticsearchmachine merged 3 commits intoelastic:masterfrom
elasticsearchmachine merged 3 commits intoelastic:masterfrom
Conversation
Today the `MasterService` permits clients to submit a batch of tasks which it guarantees to execute together, but the only place that this functionality is used in production code is for completing an election. It was done this way so that each join could succeed or fail independently, but since elastic#83562 we can track the status of joins through to completion without needing them all to be separate tasks. This commit introduces a `JoinTask` which represents the whole batch of joins as a single task. It also gives us a place to hang the strange `_FINISH_ELECTION_` task that was used to flag whether a batch was an election-completing batch or not. Relates elastic#83784
Collaborator
|
Pinging @elastic/es-distributed (Team:Distributed) |
16 tasks
server/src/main/java/org/elasticsearch/cluster/coordination/JoinHelper.java
Outdated
Show resolved
Hide resolved
server/src/test/java/org/elasticsearch/indices/cluster/ClusterStateChanges.java
Outdated
Show resolved
Hide resolved
server/src/test/java/org/elasticsearch/indices/cluster/ClusterStateChanges.java
Outdated
Show resolved
Hide resolved
idegtiarenko
approved these changes
Feb 11, 2022
Member
Author
|
Ah good point. Now to work out why my IntelliJ expands |
DaveCTurner
added a commit
to DaveCTurner/elasticsearch
that referenced
this pull request
Feb 11, 2022
Today `MasterService` (and `TaskBatcher`) allow callers to submit a collection of tasks that will be executed all at once. Support for batches of tasks makes things more complicated than they need to be, noting that (since elastic#83803) in production code we only ever submit single tasks. This commit specializes things to accept only single tasks.
elasticsearchmachine
pushed a commit
that referenced
this pull request
Feb 11, 2022
Today `MasterService` (and `TaskBatcher`) allow callers to submit a collection of tasks that will be executed all at once. Support for batches of tasks makes things more complicated than they need to be, noting that (since #83803) in production code we only ever submit single tasks. This commit specializes things to accept only single tasks.
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.
Today the
MasterServicepermits clients to submit a batch of taskswhich it guarantees to execute together, but the only place that this
functionality is used in production code is for completing an election.
It was done this way so that each join could succeed or fail
independently, but since #83562 we can track the status of joins through
to completion without needing them all to be separate tasks.
This commit introduces a
JoinTaskwhich represents the whole batch ofjoins as a single task. It also gives us a place to hang the strange
_FINISH_ELECTION_task that was used to flag whether a batch was anelection-completing batch or not.
Relates #83784