-
Notifications
You must be signed in to change notification settings - Fork 25k
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
Enrich indices can clash with user allocation settings #54151
Comments
Pinging @elastic/es-distributed (:Distributed/Allocation) |
Pinging @elastic/es-core-features (:Core/Features/Ingest) |
There is a general problem here, not specific to the enrich indices, relating to auto-expand replicas and how it interplays with other allocation settings (e.g., #2869). Therefore, we are re-adding the distributed label, and treating this as a distributed problem. |
We discussed this today and think it would be a good idea to ignore the same-host allocation decider and the allocation awareness decider if using auto-expand replicas with an upper bound of A question to the Enrich folks: does this do what you want? We were working on the assumption that you really want a copy of every shard on each node. An alternative, if This also may relate to system indices so I'm adding the All other feedback also welcomed. |
Pinging @elastic/es-core-infra (:Core/Infra/Core) |
Enrich indices will be system indices, so if Enrich requires a shard copy on every node, by definition that will be a requirement for some system indices. I believe there are some others that would benefit from that treatment as well. How allocation is configured for system indices is something we’ve been thinking about but have not yet reached a conclusion on, in part because of radically varying requirements for different system indices. Now that we’ve gotten hidden indices fully ready to ship, we’re looking to solidify things very soon. In any event, I don’t foresee either of the solutions proposed here colliding with our plans (per our current thinking at least). |
Thanks. I was leaning in the same direction too. I think the allocation deciders that you mentioned should implement the
Yes. Enrich was built with the assumption that not all enrichments/lookups are going to be local. Especially in the case with clusters that only have dedicated ingest nodes. We built a buffering mechanism to bundle as search requests as much as possible under a certain load. |
No, it's kind of the opposite of that. The filter allocation decider overrules auto-expand replicas, whereas I'm proposing having auto-expand replicas overrule allocation awareness/same host. |
Hearing no objections, we will proceed with the plan to skip the allocation-awareness and same-host deciders on shards that have auto-expand replicas with an upper bound of |
Today if an index is set to `auto_expand_replicas: N-all` then we will try and create a shard copy on every node that matches the applicable allocation filters. This conflits with shard allocation awareness and the same-host allocation decider if there is an uneven distribution of nodes across zones or hosts, since these deciders prevent shard copies from being allocated unevenly and may therefore leave some unassigned shards. The point of these two deciders is to improve resilience given a limited number of shard copies but there is no need for this behaviour when the number of shard copies is not limited, so this commit supresses them in that case. Closes elastic#54151 Closes elastic#2869
Today if an index is set to `auto_expand_replicas: N-all` then we will try and create a shard copy on every node that matches the applicable allocation filters. This conflits with shard allocation awareness and the same-host allocation decider if there is an uneven distribution of nodes across zones or hosts, since these deciders prevent shard copies from being allocated unevenly and may therefore leave some unassigned shards. The point of these two deciders is to improve resilience given a limited number of shard copies but there is no need for this behaviour when the number of shard copies is not limited, so this commit supresses them in that case. Closes #54151 Closes #2869
Today if an index is set to `auto_expand_replicas: N-all` then we will try and create a shard copy on every node that matches the applicable allocation filters. This conflits with shard allocation awareness and the same-host allocation decider if there is an uneven distribution of nodes across zones or hosts, since these deciders prevent shard copies from being allocated unevenly and may therefore leave some unassigned shards. The point of these two deciders is to improve resilience given a limited number of shard copies but there is no need for this behaviour when the number of shard copies is not limited, so this commit supresses them in that case. Closes #54151 Closes #2869
A user reported that enrich indices were not being allocated because of the following incompatible objectives:
cluster.routing.allocation.same_shard.host
While the enrich indices were not fulfilling their objective to have a replica on every node the system is functional and there is good locality of data (each host has a copy) but the cluster state is permanently yellow. This is an annoyance from a monitoring perspective.
The text was updated successfully, but these errors were encountered: