[Elasticsearch] Adaptive Replica Selection 기능
Elastic/Elasticsearch 2018. 5. 9. 17:066.x 에 추가된 API 중 맘에 드는 것이 있어서 글을 퍼왔습니다.
Reference)
https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html
Adaptive Replica Selection
As an alternative to requests being sent to copies of the data in a round robin fashion, you may enable adaptive replica selection. This allows the coordinating node to send the request to the copy deemed "best" based on a number of criteria:
- Response time of past requests between the coordinating node and the node containing the copy of the data
- Time past search requests took to execute on the node containing the data
- The queue size of the search threadpool on the node containing the data
This can be turned on by changing the dynamic cluster setting cluster.routing.use_adaptive_replica_selection from false to true:
PUT /_cluster/settings
{
"transient": {
"cluster.routing.use_adaptive_replica_selection": true
}
}
위에 기술 되어 있는 것 처럼,
- 기본적으로는 Round Robin 방식으로 동작 합니다.
- 하지만 3가지 기준을 가지고 이 기능은 동작을 합니다.
1. Coordinating node 와 Data node 간의 응답 시간
2. Data node 에서 수행된 시간
3. Data node 의 threadpool queue 크기
이 중에서 가장 좋은 기준을 바탕으로 동작 하게 되는 것입니다.