Skip to content
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

Support adaptive replica selection and preference #89453

Open
CAFxX opened this issue Aug 18, 2022 · 1 comment
Open

Support adaptive replica selection and preference #89453

CAFxX opened this issue Aug 18, 2022 · 1 comment
Labels
:Distributed/Network Http and internode communication implementations >enhancement Team:Distributed Meta label for distributed team

Comments

@CAFxX
Copy link

CAFxX commented Aug 18, 2022

Description

Currently if the preference is set during a search operation it disables adaptive replica selection for that query. This is understandable, as the two mechanisms are different and conflicting approaches for replica selection.

In some cases it would be ideal though if there was a hybrid schema that allowed to reap the benefit of both, and specifically improving caching hit ratios (by using a custom string preference to steer similar requests to the same nodes) while avoiding hotspots (by using adaptive replica selection to spread the load only in case it becomes excessive on any individual node).

The ideal solution would steer requests for the same preference string to the minimum number of replicas required to prevent any individual node from becoming overloaded.

So e.g.

  • if all nodes are not overloaded, it would behave as today when a custom preference string is specified
  • as one or more nodes become overloaded, queries that would hit those overloaded nodes are increasingly spread to an increasing number of alternate replicas of the shards on the overloaded nodes
  • in the pathological example of a single custom preference string being used on 100% of requests it should therefore behave as if today adaptive replica selection was enabled and no preference was set.
@CAFxX CAFxX added >enhancement needs:triage Requires assignment of a team area label labels Aug 18, 2022
@gmarouli gmarouli added :Distributed/Network Http and internode communication implementations and removed needs:triage Requires assignment of a team area label labels Aug 22, 2022
@elasticsearchmachine elasticsearchmachine added the Team:Distributed Meta label for distributed team label Aug 22, 2022
@elasticsearchmachine
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Distributed/Network Http and internode communication implementations >enhancement Team:Distributed Meta label for distributed team
Projects
None yet
Development

No branches or pull requests

3 participants