Cross-cluster replication API
Introduced 1.1
Initiate replication of an index from the leader cluster to the follower cluster. Send this request to the follower cluster.
Request
Specify the following options:
Sample response
{
"acknowledged": true
}
Stop replication
Introduced 1.1
Terminates replication and converts the follower index to a standard index. Send this request to the follower cluster.
Request
POST /_plugins/_replication/<follower-index>/_stop
{}
Sample response
{
"acknowledged": true
}
Pause replication
Introduced 1.1
Pauses replication of the leader index. Send this request to the follower cluster.
Request
POST /_plugins/_replication/<follower-index>/_pause
{}
You can’t resume replication after it’s been paused for more than 12 hours. You must , delete the follower index, and restart replication of the leader.
Sample response
{
"acknowledged": true
}
Introduced 1.1
Request
POST /_plugins/_replication/<follower-index>/_resume
{}
Sample response
Get replication status
Introduced 1.1
Gets the status of index replication. Possible statuses are SYNCING
, BOOTSTRAPING
, PAUSED
, and REPLICATION NOT IN PROGRESS
. Use the syncing details to measure replication lag. Send this request to the follower cluster.
Request
GET /_plugins/_replication/<follower-index>/_status
Sample response
{
"status" : "SYNCING",
"reason" : "User initiated",
"leader_alias" : "my-connection-name",
"leader_index" : "leader-01",
"follower_index" : "follower-01",
"syncing_details" : {
"leader_checkpoint" : 19,
"follower_checkpoint" : 19,
"seq_no" : 0
}
To include shard replication details in the response, add the &verbose=true
parameter.
The leader and follower checkpoint values begin as negative integers and reflect the shard count (-1 for one shard, -5 for five shards, and so on). The values increment toward positive integers with each change that you make. For example, when you make a change on the leader index, the leader_checkpoint
becomes 0
. The follower_checkpoint
is initially still -1
until the follower index pulls the change from the leader, at which point it increments to 0
. If the values are the same, it means the indexes are fully synced.
Get leader cluster stats
Introduced 1.1
Gets information about replicated leader indexes on a specified cluster.
Request
GET /_plugins/_replication/leader_stats
Sample response
{
"num_replicated_indices": 2,
"operations_read": 15,
"translog_size_bytes": 1355,
"operations_read_lucene": 0,
"operations_read_translog": 15,
"total_read_time_lucene_millis": 0,
"total_read_time_translog_millis": 659,
"bytes_read": 1000,
"index_stats":{
"leader-index-1":{
"operations_read": 7,
"translog_size_bytes": 639,
"operations_read_translog": 7,
"total_read_time_lucene_millis": 0,
"total_read_time_translog_millis": 353,
"bytes_read":466
},
"leader-index-2":{
"operations_read": 8,
"translog_size_bytes": 716,
"operations_read_lucene": 0,
"operations_read_translog": 8,
"total_read_time_lucene_millis": 0,
"total_read_time_translog_millis": 306,
"bytes_read": 534
}
}
}
Introduced 1.1
Gets information about follower (syncing) indexes on a specified cluster.
Request
GET /_plugins/_replication/follower_stats
Sample response
{
"num_syncing_indices": 2,
"num_bootstrapping_indices": 0,
"num_paused_indices": 0,
"num_failed_indices": 0,
"num_shard_tasks": 2,
"num_index_tasks": 2,
"operations_written": 3,
"operations_read": 3,
"failed_read_requests": 0,
"throttled_read_requests": 0,
"failed_write_requests": 0,
"throttled_write_requests": 0,
"follower_checkpoint": 1,
"leader_checkpoint": 1,
"total_write_time_millis": 2290,
"index_stats":{
"follower-index-1":{
"operations_written": 2,
"operations_read": 2,
"failed_read_requests": 0,
"throttled_read_requests": 0,
"failed_write_requests": 0,
"throttled_write_requests": 0,
"follower_checkpoint": 1,
"leader_checkpoint": 1,
"total_write_time_millis": 1355
},
"operations_written": 1,
"operations_read": 1,
"failed_read_requests": 0,
"throttled_read_requests": 0,
"failed_write_requests": 0,
"throttled_write_requests": 0,
"follower_checkpoint": 0,
"leader_checkpoint": 0,
"total_write_time_millis": 935
}
}
}
Get auto-follow stats
Introduced 1.1
Request
Sample response
{
"num_failed_start_replication": 0,
"num_failed_leader_calls": 0,
"failed_indices":[
],
"autofollow_stats":[
{
"name":"my-replication-rule",
"pattern":"movies*",
"num_success_start_replication": 2,
"num_failed_start_replication": 0,
"num_failed_leader_calls": 0,
"failed_indices":[
]
}
]
}
Update settings
Introduced 1.1
Updates settings on the follower index.
Request
PUT /_plugins/_replication/<follower-index>/_update
{
"settings":{
"index.number_of_shards": 4,
"index.number_of_replicas": 2
}
}
Sample response
{
"acknowledged": true
}
Introduced 1.1
Automatically starts replication on indexes matching a specified pattern. If a new index on the leader cluster matches the pattern, OpenSearch automatically creates a follower index and begins replication. You can also use this API to update existing replication rules.
Send this request to the follower cluster.
Make sure to note the names of all auto-follow patterns after you create them. The replication plugin currently does not include an API operation to retrieve a list of existing patterns.
Request
POST /_plugins/_replication/_autofollow
{
"leader_alias" : "<connection-alias-name>",
"name": "<auto-follow-pattern-name>",
"pattern": "<pattern>",
"use_roles":{
"leader_cluster_role": "<role-name>",
"follower_cluster_role": "<role-name>"
}
}
Specify the following options:
Sample response
{
"acknowledged": true
}
Delete replication rule
Introduced 1.1
Deletes the specified replication rule. This operation prevents any new indexes from being replicated but does not stop existing replication that the rule has already initiated. Replicated indexes remain read-only until you stop replication.
Request
DELETE /_plugins/_replication/_autofollow
{
"leader_alias" : "<connection-alias-name>",
"name": "<auto-follow-pattern-name>",
}
Specify the following options: