Add remote cluster infrastructure to fetch discovery nodes.#25123
Merged
s1monw merged 6 commits intoelastic:masterfrom Jun 13, 2017
Merged
Add remote cluster infrastructure to fetch discovery nodes.#25123s1monw merged 6 commits intoelastic:masterfrom
s1monw merged 6 commits intoelastic:masterfrom
Conversation
In order to add scroll support for cross cluster search we need to resolve the nodes encoded in the scroll ID to send requests to the corresponding nodes. This change adds the low level connection infrastrucutre that also ensures that connections are re-established if the cluster is disconnected due to a network faiulre or restarts. Relates to elastic#25094
bleskes
suggested changes
Jun 8, 2017
Contributor
bleskes
left a comment
There was a problem hiding this comment.
I left one ask about testing. Looks good otherwise
|
|
||
| @Override | ||
| public void onFailure(Exception e) { | ||
| if (countDown.fastForward()) { |
Contributor
There was a problem hiding this comment.
I think that this can never be false, should we assert?
Contributor
Author
There was a problem hiding this comment.
if you have more than one failure it will be false
|
|
||
| CountDownLatch failLatch = new CountDownLatch(1); | ||
| AtomicReference<Exception> ex = new AtomicReference<>(); | ||
| service.collectNodes(new HashSet<>(Arrays.asList("cluster_1", "cluster_2", "no such cluster")), |
Contributor
There was a problem hiding this comment.
can we also test transport layer failures? It's a different failure path.
Contributor
Author
|
@bleskes I pushed a new commit |
bleskes
approved these changes
Jun 8, 2017
| @Override | ||
| public void onFailure(Exception e) { | ||
| if (countDown.fastForward()) { | ||
| if (countDown.fastForward()) { // we need to check if it's true since we could have multiple failures |
javanna
approved these changes
Jun 13, 2017
| Runnable runnable = () -> { | ||
| final ClusterStateRequest request = new ClusterStateRequest(); | ||
| request.clear(); | ||
| request.nodes(true); |
| // in the future we might want to just skip the remote nodes in such a case but that can already be implemented on the | ||
| // caller end since they provide the listener. | ||
| ensureConnected(ActionListener.wrap((x) -> runnable.run(), listener::onFailure)); | ||
| } else { |
Contributor
There was a problem hiding this comment.
Question: why using a runnable here? couldn't we do transportService.sendRequest straight-away?
Contributor
Author
There was a problem hiding this comment.
we could but that means that we duplicate the code, so in this case I have it all in one runnable and just pass it on.
s1monw
added a commit
that referenced
this pull request
Jun 13, 2017
In order to add scroll support for cross cluster search we need to resolve the nodes encoded in the scroll ID to send requests to the corresponding nodes. This change adds the low level connection infrastructure that also ensures that connections are re-established if the cluster is disconnected due to a network failure or restarts. Relates to #25094
jasontedor
added a commit
to jasontedor/elasticsearch
that referenced
this pull request
Jun 14, 2017
* master: (27 commits) Refactor TransportShardBulkAction.executeUpdateRequest and add tests Make sure range queries are correctly profiled. (elastic#25108) Test: allow setting socket timeout for rest client (elastic#25221) Migration docs for elastic#25080 (elastic#25218) Remove `discovery.type` BWC layer from the EC2/Azure/GCE plugins elastic#25080 When stopping via systemd only kill the JVM, not its control group (elastic#25195) Remove PrefixAnalyzer, because it is no longer used. Internal: Remove Strings.cleanPath (elastic#25209) Docs: Add note about which secure settings are valid (elastic#25212) Indices.rollover/10_basic should refresh to make the doc visible in lucene stats Port support for commercial GeoIP2 databases from Logstash. (elastic#24889) [DOCS] Add ML node to node.asciidoc (elastic#24495) expose simple pattern tokenizers (elastic#25159) Test: add setting to change request timeout for rest client (elastic#25201) Fix secure repository-hdfs tests on JDK 9 Add target_field parameter to gsub, join, lowercase, sort, split, trim, uppercase (elastic#24133) Add Cross Cluster Search support for scroll searches (elastic#25094) Adapt skip version in rest-api-spec/test/indices.rollover/20_max_doc_condition.yml Rollover max docs should only count primaries (elastic#24977) Add remote cluster infrastructure to fetch discovery nodes. (elastic#25123) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In order to add scroll support for cross cluster search we need
to resolve the nodes encoded in the scroll ID to send requests to the
corresponding nodes. This change adds the low level connection infrastructure
that also ensures that connections are re-established if the cluster is
disconnected due to a network failure or restarts.
Relates to #25094