mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-07 05:28:34 +00:00
0ce841915c
Adds an API to clone an index. This is similar to the index split and shrink APIs, just with the difference that the number of primary shards is kept the same. In case where the filesystem provides hard-linking capabilities, this is a very cheap operation. Indexing cloning can be done by running `POST my_source_index/_clone/my_target_index` and it supports the same options as the split and shrink APIs. Closes #44128
81 lines
3.0 KiB
Plaintext
81 lines
3.0 KiB
Plaintext
--
|
|
:api: clone-index
|
|
:request: ResizeRequest
|
|
:response: ResizeResponse
|
|
--
|
|
|
|
[id="{upid}-{api}"]
|
|
=== Clone Index API
|
|
|
|
[id="{upid}-{api}-request"]
|
|
==== Resize Request
|
|
|
|
The Clone Index API requires a +{request}+ instance.
|
|
A +{request}+ requires two string arguments:
|
|
|
|
["source","java",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{doc-tests-file}[{api}-request]
|
|
--------------------------------------------------
|
|
<1> The target index (first argument) to clone the source index (second argument) into
|
|
<2> The resize type needs to be set to `CLONE`
|
|
|
|
==== Optional arguments
|
|
The following arguments can optionally be provided:
|
|
|
|
["source","java",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{doc-tests-file}[{api}-request-timeout]
|
|
--------------------------------------------------
|
|
<1> Timeout to wait for the all the nodes to acknowledge the index is opened
|
|
as a `TimeValue`
|
|
<2> Timeout to wait for the all the nodes to acknowledge the index is opened
|
|
as a `String`
|
|
|
|
["source","java",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{doc-tests-file}[{api}-request-masterTimeout]
|
|
--------------------------------------------------
|
|
<1> Timeout to connect to the master node as a `TimeValue`
|
|
<2> Timeout to connect to the master node as a `String`
|
|
|
|
["source","java",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{doc-tests-file}[{api}-request-waitForActiveShards]
|
|
--------------------------------------------------
|
|
<1> The number of active shard copies to wait for before the clone index API
|
|
returns a response, as an `int`
|
|
<2> The number of active shard copies to wait for before the clone index API
|
|
returns a response, as an `ActiveShardCount`
|
|
|
|
["source","java",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{doc-tests-file}[{api}-request-settings]
|
|
--------------------------------------------------
|
|
<1> The settings to apply to the target index, which optionally include the
|
|
number of shards to create for it
|
|
|
|
["source","java",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{doc-tests-file}[{api}-request-aliases]
|
|
--------------------------------------------------
|
|
<1> The aliases to associate the target index with
|
|
|
|
include::../execution.asciidoc[]
|
|
|
|
[id="{upid}-{api}-response"]
|
|
==== Clone Index Response
|
|
|
|
The returned +{response}+ allows to retrieve information about the
|
|
executed operation as follows:
|
|
|
|
["source","java",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{doc-tests-file}[{api}-response]
|
|
--------------------------------------------------
|
|
<1> Indicates whether all of the nodes have acknowledged the request
|
|
<2> Indicates whether the requisite number of shard copies were started for
|
|
each shard in the index before timing out
|
|
|
|
|