brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Jun 12. 2019

Elasticsearch: Active shard

다 샤드 때문이다.

Shard, 샤드


분산처리를 지원하는 엔진의 99%는

이 샤드를 활용해서 데이터를 분산저장 한다.


Elastic 에서 샤드도 위와 같다.

샤드 자체가 데이터이다.


이 샤드는 Node, 노드에 위치한다.


Elastic은 Default 옵션으로

샤드 5 값을 가진다.


상황에 맞게 샤드의 값을 조절한다.

왜냐하면

샤드 자체가 데이터이고, 데이터를 쪼갠다는 것 또한 비용이 되기 때문이다.


10개의 데이터를 10개로 쪼개서 저장 할 필요가 있을까?


Elasticsearch를 보면,

1. 클러스터가 존재하고,

2. 노드가 존재하고,

3. 샤드(데이터)가 존재하고,

4. 이 샤드의 복제본(Replicas)이 존재 할 수도 있다.


예을 들어,


샤드 3, 복제 1 정보를 확인한다.


자세히 보면 Primaries 가 보인다. 그리고 복제본(Replicas)가 하나 보인다.

이것은 데이터를 3개의 샤드로 나누고,

혹시모를 시스템 장애에 대한 예비책으로 복제본을 하나 만드는 것이다.


검색을 한다고 가정하자.

내가 원하는 데이터가 1번 샤드에 있다.

1번 샤드가 2개로 나뉘어 있다. Primary와 Replica로 존재한다.

Elastic은 모든 샤드를 이용해서 원하는 데이터를 찾고 그 결과를 반환한다.


즉,

검색성능이 향상 될 수 있다.


이제 샤드가 뭐냐 질문을 받는다면

1. 샤드는 노드에 존재하는 실제 데이터

2. 검색성능을 향상

라는 답을 내놓을 수 있다.


추가적으로

Replicas를 통해서 장애 대응의 수단으로 사용 할 수 있음도 확인.


끝.


작가의 이전글 AWS: 요금정보 시각화 & Kibana
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari