Skip to content

Submit batches of joins as single tasks#83803

Merged
elasticsearchmachine merged 3 commits intoelastic:masterfrom
DaveCTurner:2022-02-10-join-task-batching
Feb 11, 2022
Merged

Submit batches of joins as single tasks#83803
elasticsearchmachine merged 3 commits intoelastic:masterfrom
DaveCTurner:2022-02-10-join-task-batching

Conversation

@DaveCTurner
Copy link
Copy Markdown
Member

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 #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 #83784

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
@DaveCTurner DaveCTurner added >refactoring :Distributed/Cluster Coordination Cluster formation and cluster state publication, including cluster membership and fault detection. v8.2.0 labels Feb 10, 2022
@elasticmachine elasticmachine added the Team:Distributed Meta label for distributed team. label Feb 10, 2022
@elasticmachine
Copy link
Copy Markdown
Collaborator

Pinging @elastic/es-distributed (Team:Distributed)

@DaveCTurner
Copy link
Copy Markdown
Member Author

Ah good point. Now to work out why my IntelliJ expands .toL<TAB> as .collect(Collectors.toList()) in these places. Anyway I did that and then did some other simplifications in fabcb30.

@DaveCTurner DaveCTurner added the auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) label Feb 11, 2022
@elasticsearchmachine elasticsearchmachine merged commit 586378b into elastic:master Feb 11, 2022
@DaveCTurner DaveCTurner deleted the 2022-02-10-join-task-batching branch February 11, 2022 10:10
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-merge-without-approval Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) :Distributed/Cluster Coordination Cluster formation and cluster state publication, including cluster membership and fault detection. >refactoring Team:Distributed Meta label for distributed team. v8.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants