[elasticsearch] sharding 알고리즘.

Elastic/Elasticsearch 2014. 1. 28. 16:47

elasticsearch 에서 어떤식으로 index 와 document 를 분산 시키는지 궁금 하신 분들이 계실걸로 압니다.

뭐 소스 코드 보신 분들은 다 아실 것 같고 보기 귀찮으신 분들을 위해서 짧게 적어 봅니다.


[Index Sharding Route]

- index settings 에서 number_of_shards 설정 정보를 이용합니다.

- 그래서 각 node 들에 순서데로 나눠서 할당을 합니다.


[Document Route]

- sharding 된 index shard 에 document 를 어떻게 분배 할지 결정을 합니다.

- 분배는 hash 알고리즘을 이용합니다.

- Math.abs( hash(....) % numberOfShards )


관련 소스는 아래 

- org.elasticsearch.cluster.routing 패키지

입니다.

: