본문 바로가기

Computer/Elasticsearch

cache(indices.cache.filter.size) Cache https://www.elastic.co/guide/en/elasticsearch/reference/1.5/index-modules-cache.html Filter Evictions과 관련해서 indices.cache.filter.size 기본 설정 값 확인 중cache에 대한 공식 문서를 정리해 놓습니다. index와 관련된 다른 caching inner modules 있다.그것은 filter와 다른 것들을 포함한다. Filter Cache filter cache는 filter의 결과에 대한 caching에 책임이 있다.filter cache의 기본 구현은 node filter cache type이다. node filter cache node filter cache는 전체 메모리의 %(퍼센트.. 더보기
elasticsearch thread pool http://www.elastic.co/guide/en/elasticsearch/reference/1.x/modules-threadpool.html node는 thread memory consumption의 관리를 위해 several thread pools을 가진다.이 pool들은 queues를 가지고, request를 폐기하는대신 대기할 수 있다. index : fixed # of available processors, queue_size of 200search : fixed 3x # of available processors, queue_size of 1000suggest : fixed # of available processors, queue_size of 1000get : fixed # of av.. 더보기
doc values http://www.elastic.co/guide/en/elasticsearch/guide/current/doc-values.html 인덱스 시점에 disk에 in-memory fielddata를 저장하는 방법doc value는 in-memory fielddata에 비해 10~25% 느리다.하지만, 2가지 장점이 있다.1) heap memory 대신 disk에 있다. 더 적은 heap을 사용할 수 있고, gc의 속도를 향상 시킬 수 있고, 일관성과 노드의 안정성을 향상 시킬 수 있다.2) doc values는 index time에 빌드된다. trade-off는 larger index size와 약간 느려진 fielddata access이다.doc values는 상당히 효율적이다. 그래서 많은 querie.. 더보기
eager, eager global ordinals http://www.elastic.co/guide/en/elasticsearch/guide/current/preload-fielddata.html ES는 기본적으로 fielddata를 lazily load 한다.ES는 particular field에 fielddata가 필요한 query가 생기면, 전체 field를 각 index의 segement에 대해 메모리로 load한다. 작은 segments에서는 이 시간이 별로 안 걸리지만, 5GB segments는 10GB fielddata를 메모리로 올려야 한다. 이 과정은 수십초가 걸린다. 지연에 대비할 수 있는 3가지 방법이 있다.1) Eagerly load fielddata2) Eagerly load global ordinals3) Prepopulate .. 더보기
Field data Field data: http://www.elastic.co/guide/en/elasticsearch/reference/1.4/index-modules-fielddata.html field data cache는 주로 field에 대해 sorting 또는 faceting에 사용된다.그것은 value에 문서기반으로 빨리 접근할 수 있도록 field values은 메모리로 읽는다.field data cache는 비용이 많이 들 수 있다. 그래서 충분한 메모리를 사용할 수 있을 때 있을 때 추천되고, 그것은 load를 유지한다. field data cache에서 사용할 메모리 크기는 indices.fielddata.cache.size에서 설정할 수 있다.참고로, cache가 적절하지 않다면 field data를.. 더보기
shard 상태 확인 ES에서 shard의 상태를 확인하고자 한다면...다음과 같이 확인할 수 있다. curl -XGET "http://localhost:9200/_cat/shards" 이렇게 하면, 어떤 샤드가 어떤 노드에 할당되어 있는지, 혹은 할당되지 않은 샤드를 확인할 수 있다. 더보기
Elasticsearch Korea User Group 요즘 Elasticsearch(이하 ES)를 이용해서 무언가를 만들고 있다.(무언가를 구성하고 있다...가 더 올바른 표현인 것 같다.) ES를 이용해서 구성할 때, 가장 어려웠던 점은ES에서 제공하는 기능이 뭔지 알아내는데 상당한 시간이 필요하고,ES의 최적화를 위해서 여러 방법을 생각해보지만, 그 방법이 맞는지 너무너무 헷갈린다는 점이다. 이제, 내가 고민했던 내용들과 이해했던 내용들을 정리하려고 한다.ES를 사용하려는 사용자들에게 조금이나마 도움이 되면 좋겠다. 먼저, 한국 엘라스틱서치 사용자 그룹 URL을 공유한다. https://www.facebook.com/groups/elasticsearch.kr/ 더보기