Skip to content

Commit

Permalink
Add documentation for remote cluster proxy mode (#52779)
Browse files Browse the repository at this point in the history
This is related to #49067.
  • Loading branch information
Tim-Brooks authored Mar 9, 2020
1 parent d6f827d commit abd8a36
Show file tree
Hide file tree
Showing 4 changed files with 169 additions and 65 deletions.
36 changes: 27 additions & 9 deletions docs/reference/cluster/remote-info.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,29 +17,47 @@ Returns configured remote cluster information.
==== {api-description-title}

The cluster remote info API allows you to retrieve all of the configured
remote cluster information. It returns connection and endpoint information keyed
remote cluster information. It returns connection and endpoint information keyed
by the configured remote cluster alias.


[[cluster-remote-info-api-response-body]]
==== {api-response-body-title}

`seeds`::
The configured initial seed transport addresses of the remote cluster.
`mode`::
Connection mode for the remote cluster. Returned values are `sniff` and
`proxy`.

`connected`::
True if there is at least one connection to the remote cluster.

`num_nodes_connected`::
The number of connected nodes in the remote cluster.

`max_connections_per_cluster`::
The maximum number of connections maintained for the remote cluster.

`initial_connect_timeout`::
The initial connect timeout for remote cluster connections.

[[skip-unavailable]]
`skip_unavailable`::
Whether the remote cluster is skipped in case it is searched through
a {ccs} request but none of its nodes are available.

`seeds`::
Initial seed transport addresses of the remote cluster when sniff mode is
configured.

`num_nodes_connected`::
Number of connected nodes in the remote cluster when sniff mode is
configured.

`max_connections_per_cluster`::
Maximum number of connections maintained for the remote cluster when sniff
mode is configured.

`address`::
Address for remote connections when proxy mode is configured.

`num_sockets_connected`::
Number of open socket connections to the remote cluster when proxy mode
is configured.

`max_socket_connections`::
The maximum number of socket connections to the remote cluster when proxy
mode is configured.
37 changes: 20 additions & 17 deletions docs/reference/modules/cross-cluster-search.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -253,30 +253,33 @@ PUT _cluster/settings
If `cluster_two` is disconnected or unavailable during a {ccs}, {es} won't
include matching documents from that cluster in the final results.

[discrete]
[[ccs-works]]
== How {ccs} works

include::./remote-clusters.asciidoc[tag=how-remote-clusters-work]

[discrete]
[[ccs-gateway-seed-nodes]]
=== Selecting gateway and seed nodes
== Selecting gateway and seed nodes in sniff mode

Gateway and seed nodes need to be accessible from the local cluster via your
network.
For remote clusters using the <<sniff-mode,sniff connection>> mode, gateway and
seed nodes need to be accessible from the local cluster via your network.

By default, any master-ineligible node can act as a gateway node. If wanted,
you can define the gateway nodes for a cluster by setting
`cluster.remote.node.attr.gateway` to `true`.
By default, any non-<<master-node,master-eligible>> node can act as a
gateway node. If wanted, you can define the gateway nodes for a cluster by
setting `cluster.remote.node.attr.gateway` to `true`.

For {ccs}, we recommend you use gateway nodes that are capable of serving as
<<coordinating-node,coordinating nodes>> for search requests. If
wanted, the seed nodes for a cluster can be a subset of these gateway nodes.

[discrete]
[[ccs-proxy-mode]]
== {ccs} in proxy mode

<<proxy-mode,Proxy mode>> remote cluster connections support {ccs}. All remote
connections connect to the configured `proxy_address`. Any desired connection
routing to gateway or <<coordinating-node,coordinating nodes>> must
be implemented by the intermediate proxy at this configured address.

[discrete]
[[ccs-network-delays]]
=== How {ccs} handles network delays
== How {ccs} handles network delays

Because {ccs} involves sending requests to remote clusters, any network delays
can impact search speed. To avoid slow searches, {ccs} offers two options for
Expand All @@ -300,9 +303,9 @@ low latency.
+
See <<ccs-unmin-roundtrips>> to learn how this option works.

[float]
[discrete]
[[ccs-min-roundtrips]]
==== Minimize network roundtrips
=== Minimize network roundtrips

Here's how {ccs} works when you minimize network roundtrips.

Expand All @@ -326,9 +329,9 @@ final results in the {ccs} response.
+
image:images/ccs/ccs-min-roundtrip-client-response.svg[]

[float]
[discrete]
[[ccs-unmin-roundtrips]]
==== Don't minimize network roundtrips
=== Don't minimize network roundtrips

Here's how {ccs} works when you don't minimize network roundtrips.

Expand Down
Loading

0 comments on commit abd8a36

Please sign in to comment.