얼마전 몇개의 도큐멘트를 갖고 검색환경을 만들었는데, 클러스터 노트의 수가 더 작았음에도 검색 속도는 더 빨랐다는 글을 어디선가 읽었다.
검색데이터(인덱스의 크기)도 무시 할 수는 없지만, 분산환경에서 특히 무시할 수 없는 것이 커넥션(tcp)비용이다. 그리고 검색이라는 것은 sorting, scoring 에서 많은 파워를 필요하게 된다.
엘라스틱의 경우 쿼리를 받을 경우 두번의 작업을 하게 된다. 해당 키워드들을 찾아 도큐멘트주소(어디노드에 있는지, 어떤 세그멘트에 있는지) 갖고 온 후 각 노드들에 대해 다시 질의한다. 이렇게 두번의 커넥션을 갖게 되는데, 인덱스 도큐멘트가 작은 상태에서 샤드를 여러개로 세팅했다면 당연 모든 노드로 쿼리가 가야하기 때문에 한 샤드에서 가져올때 대비하여 속도에서 더 느린 경험이 될 것 같다.
'프로그래밍 > ElasticSearch' 카테고리의 다른 글
[Elasticsearch] Decay function 에 대해서 (수정중) (0) | 2016.08.30 |
---|---|
[Elasticsearch] lucene offsetAttribue (0) | 2015.07.19 |
[Elasticsearch] Index Mapping with java (0) | 2015.07.15 |
[Elasticsearch] 플러그인 설치 with jar (0) | 2015.07.09 |
[Elasticsearch] StringOutofIndex 에러 (0) | 2015.07.09 |