-
Notifications
You must be signed in to change notification settings - Fork 25.3k
Add documentation on remote recovery #39483
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
Merged
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
dbda7f4
WIP
Tim-Brooks 9679748
Merge remote-tracking branch 'upstream/master' into remote_recovery_doc
Tim-Brooks 199501d
Add more docs
Tim-Brooks 6710797
Changes
Tim-Brooks b3d8556
[DOCS] Adds remote recovery to Stack Overview
lcawl 5f656ca
Chnages
Tim-Brooks 72897af
[DOCS] Move CCR settings to Elasticsearch Ref
lcawl 6e08ddb
Merge remote-tracking branch 'origin/remote_recovery_doc' into remote…
Tim-Brooks ef289ba
[DOCS] Fixes broken links
lcawl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
[role="xpack"] | ||
[testenv="platinum"] | ||
[[remote-recovery]] | ||
== Remote recovery | ||
|
||
When you create a follower index, you cannot use it until it is fully initialized. | ||
The _remote recovery_ process builds a new copy of a shard on a follower node by | ||
copying data from the primary shard in the leader cluster. {es} uses this remote | ||
recovery process to bootstrap a follower index using the data from the leader index. | ||
This process provides the follower with a copy of the current state of the leader index, | ||
even if a complete history of changes is not available on the leader due to Lucene | ||
segment merging. | ||
|
||
Remote recovery is a network intensive process that transfers all of the Lucene | ||
segment files from the leader cluster to the follower cluster. The follower | ||
requests that a recovery session be initiated on the primary shard in the leader | ||
cluster. The follower then requests file chunks concurrently from the leader. By | ||
default, the process concurrently requests `5` large `1mb` file chunks. This default | ||
behavior is designed to support leader and follower clusters with high network latency | ||
between them. | ||
|
||
There are dynamic settings that you can use to rate-limit the transmitted data | ||
and manage the resources consumed by remote recoveries. See | ||
{ref}/ccr-settings.html[{ccr-cap} settings]. | ||
|
||
You can obtain information about an in-progress remote recovery by using the | ||
{ref}/cat-recovery.html[recovery API] on the follower cluster. Remote recoveries | ||
are implemented using the {ref}/modules-snapshots.html[snapshot and restore] infrastructure. This means that on-going remote recoveries are labelled as type | ||
`snapshot` in the recovery API. |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
[role="xpack"] | ||
[[ccr-settings]] | ||
=== {ccr-cap} settings | ||
|
||
These {ccr} settings can be dynamically updated on a live cluster with the | ||
<<cluster-update-settings,cluster update settings API>>. | ||
|
||
[float] | ||
[[ccr-recovery-settings]] | ||
==== Remote recovery settings | ||
|
||
The following setting can be used to rate-limit the data transmitted during | ||
{stack-ov}/remote-recovery.html[remote recoveries]: | ||
|
||
`ccr.indices.recovery.max_bytes_per_sec` (<<cluster-update-settings,Dynamic>>):: | ||
Limits the total inbound and outbound remote recovery traffic on each node. | ||
Since this limit applies on each node, but there may be many nodes performing | ||
remote recoveries concurrently, the total amount of remote recovery bytes may be | ||
much higher than this limit. If you set this limit too high then there is a risk | ||
that ongoing remote recoveries will consume an excess of bandwidth (or other | ||
resources) which could destabilize the cluster. This setting is used by both the | ||
leader and follower clusters. For example if it is set to `20mb` on a leader, | ||
the leader will only send `20mb/s` to the follower even if the follower is | ||
requesting and can accept `60mb/s`. Defaults to `40mb`. | ||
|
||
[float] | ||
[[ccr-advanced-recovery-settings]] | ||
==== Advanced remote recovery settings | ||
|
||
The following _expert_ settings can be set to manage the resources consumed by | ||
remote recoveries: | ||
|
||
`ccr.indices.recovery.max_concurrent_file_chunks` (<<cluster-update-settings,Dynamic>>):: | ||
Controls the number of file chunk requests that can be sent in parallel per | ||
recovery. As multiple remote recoveries might already running in parallel, | ||
increasing this expert-level setting might only help in situations where remote | ||
recovery of a single shard is not reaching the total inbound and outbound remote recovery traffic as configured by `ccr.indices.recovery.max_bytes_per_sec`. | ||
Defaults to `5`. The maximum allowed value is `10`. | ||
|
||
`ccr.indices.recovery.chunk_size`(<<cluster-update-settings,Dynamic>>):: | ||
Controls the chunk size requested by the follower during file transfer. Defaults to | ||
`1mb`. | ||
|
||
`ccr.indices.recovery.recovery_activity_timeout`(<<cluster-update-settings,Dynamic>>):: | ||
Controls the timeout for recovery activity. This timeout primarily applies on | ||
the leader cluster. The leader cluster must open resources in-memory to supply | ||
data to the follower during the recovery process. If the leader does not receive recovery requests from the follower for this period of time, it will close the resources. Defaults to 60 seconds. | ||
|
||
`ccr.indices.recovery.internal_action_timeout` (<<cluster-update-settings,Dynamic>>):: | ||
Controls the timeout for individual network requests during the remote recovery | ||
process. An individual action timing out can fail the recovery. Defaults to | ||
60 seconds. |
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
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.
Uh oh!
There was an error while loading. Please reload this page.