-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Change skip_unavailable default value to true #105792
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
Change skip_unavailable default value to true #105792
Conversation
|
Hi @quux00, I've created a changelog YAML for you. Note that since this PR is labelled |
e634836 to
67c4f7c
Compare
|
In the process of doing this work (mostly fixing tests), I found some potential issues, both of which are pre-existing but now perhaps become more acute, so they may need to be addressed. (1) For (2) The However, when {
"took": 36,
"timed_out": false,
"total": 0,
"updated": 0,
"created": 0,
"deleted": 0,
"batches": 0,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1,
"throttled_until_millis": 0,
"failures": []
}Should the reindex API report an issue in the |
|
Pinging @elastic/es-search (Team:Search) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the only production code change. Everything else is tests and docs.
…ss. Multi_cluster rest-api-spec tests still failing
…qa/multi-cluster-search gradle
…-with-basic-license/build.gradle to allow tests to pass
95edc6c to
520ec7b
Compare
…-defaults-to-true
|
@elasticmachine run elasticsearch-ci/part-1 |
javanna
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left a question about yaml tests and the upgrade path, LGTM otherwise
qa/multi-cluster-search/src/test/resources/rest-api-spec/test/multi_cluster/20_info.yml
Show resolved
Hide resolved
| changed from `false` to `true`. Before Elasticsearch 8.15, if you want a cluster | ||
| to be treated as optional for a {ccs}, then you need to set that configuration. | ||
| From Elasticsearch 8.15 forward, you need to set the configuration in order to | ||
| make a cluster required for the {ccs}. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe obvious, but should we be explicit about the upgrade path: once you upgrade the coordinating node / cluster, where the remotes are registered, you get the new behavior? Say that the coord cluster has multiple nodes that are upgraded one by one (rolling upgrade) what would be the behavior there?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, but that is very specific to a one-time upgrade, so should that go in the "permanent" API docs? Or should it go into some one-time doc like the changelog or deprecation announcement?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normally we have migration guides for major upgrades and related changes. This is one of those changes but it goes out in a minor, I don't know if we a place for this scenario in the docs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added a blurb here about that and we'll also include in the 8.15 release notes. Thanks for flagging this.
|
@elasticmachine test this please |
|
@elasticmachine run elasticsearch-ci/part-2 |
In order to improve the experience of cross-cluster search, we propose changing
the default value of the remote cluster
skip_unavailablesetting fromfalsetotrue.This setting causes any cross-cluster search to entirely fail when any remote cluster
with
skip_unavailable=falseis either unavailable (connection to it fails) or if thesearch on it fails on all shards.
Setting
skip_unavailable=trueallows partial results from other clusters to bereturned. In that case, the search response cluster metadata will show a
skippedstatus, so the user can see that no data came in from that cluster. Kibana also
now leverages this metadata in the cross-cluster search responses to allow users
to see how many clusters returned data and drill down into which clusters did not
(including failure messages).
Currently, the user/admin has to specifically set the value to
truein the configs, like so:even though that is probably what search admins want in the vast majority of cases.
Setting
skip_unavailable=falseshould be a conscious (and probably rare) choiceby an Elasticsearch admin that a particular cluster's results are so essential to a
search (or visualization in dashboard or Discover panel) that no results at all should
be shown if it cannot return any results.