note
- target 的 primary 数是 source 的 primary的 factor。如 source_primary =
8
, target_primary 可以为 1,2,4
- Shrink 步骤
- 新建 target index,index定义相同,但是primary更下
- 从source 到 target,进行 hard-links. 如果系统不支持,则copy,会比较耗时
- 恢复 target 访问
- Split
- 新建一个 target,target_primary_count > source_primary_count
- 从source 到 target,进行 hard-links. 如果系统不支持,则copy,会比较耗时
- re-hashing
- recovers target
demo
PUT /my_source_index/_settings
{
"settings": {
"index.routing.allocation.require._name": "shrink_node_name",
"index.blocks.write": true
}
}
POST my_source_index/_shrink/my_target_index
{
"settings": {
"index.routing.allocation.require._name": null,
"index.blocks.write": null
}
}
POST my_source_index/_shrink/my_target_index
{
"settings": {
"index.number_of_replicas": 1,
"index.number_of_shards": 1,
"index.codec": "best_compression"
},
"aliases": {
"my_search_indices": {}
}
}
PUT my_source_index
{
"settings": {
"index.number_of_shards" : 1
}
}
PUT /twitter/_settings
{
"settings": {
"index.blocks.write": false
}
}
POST twitter/_split/twitter_v2
{
"settings": {
"index.number_of_shards": 2
}
}
POST twitter/_split/twitter_v2
{
"settings": {
"index.number_of_shards": 2
}
}
POST twitter/_split/twitter_v2
{
"settings": {
"index.number_of_shards": 5
},
"aliases": {
"twitter_index": {}
}
}
GET twitter_index/_search
PUT /logs-000001
{
"aliases": {
"logs_write": {}
}
}
POST /logs_write/_rollover
{
"conditions": {
"max_age": "7d",
"max_docs": 1000,
"max_size": "5gb"
}
}
DELETE logs-2019.07.17-1
PUT /%3Clogs-%7Bnow%2Fd%7D-1%3E
{
"aliases": {
"logs_write": {
"is_write_index":true
}
}
}
PUT logs_write/_doc/1
{
"message": "a dummy log"
}
POST logs_write/_refresh
POST /logs_write/_rollover
{
"conditions": {
"max_docs": "1"
}
}
POST /logs_write/_rollover
{
"conditions" : {
"max_age": "7d",
"max_docs": 1000,
"max_size": "5gb"
},
"settings": {
"index.number_of_shards": 2
}
}
POST /logs_write/_rollover?dry_run
{
"conditions" : {
"max_age": "7d",
"max_docs": 1000,
"max_size": "5gb"
}
}
GET logs_write/_search