Skip to content

Conversation

@Tim-Brooks
Copy link
Contributor

This commit ensures that multiget is properly delegated to new target
shards in the middle of a split.

@Tim-Brooks Tim-Brooks added >non-issue :Distributed/CRUD A catch all label for issues around indexing, updating and getting a doc by id. Not search. v9.4.0 labels Jan 29, 2026
@elasticsearchmachine elasticsearchmachine added the Team:Distributed Meta label for distributed team. label Jan 29, 2026
@elasticsearchmachine
Copy link
Collaborator

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

Copy link
Contributor

@bcully bcully left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good - had a couple of questions, nothing major. Will there be a corresponding end-to-end test for this?

refresh = in.readBoolean();
realtime = in.readBoolean();
forceSyntheticSource = in.readBoolean();
splitShardCountSummary = new SplitShardCountSummary(in);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doesn't this need a transport version guard?

private final ProjectMetadata projectMetadata;
private final BiConsumer<MultiGetShardRequest, ActionListener<MultiGetShardResponse>> executeRequest;

private MultiGetShardSplitHelper() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this do anything? I thought the existence of the constructor with args meant there already was no default no arg constructor?

Comment on lines +33 to +38
* Helper class for coordinating multi-get shard requests during index resharding/splitting.
* Similar to ReplicationSplitHelper, this handles the logic for detecting stale requests
* and splitting them across multiple shards when the coordinator's view is one split behind.
*
* This class provides both utility methods for splitting/combining requests and coordination
* logic for executing split requests.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be worth trying to share logic between this and ReplicationSplitHelper? I suppose it means introducing some potentially annoying abstractions, but they do look pretty similar and I wonder whether it would help with maintenance. Potentially a followup?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Distributed/CRUD A catch all label for issues around indexing, updating and getting a doc by id. Not search. >non-issue Team:Distributed Meta label for distributed team. v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants