본문 바로가기

IT/Elastic Stack

Elastic search Index & shards


인덱스(index)와 샤드(shards)에 대하여 알아보자.


Elasticsearch에서 단일 데이터의 단위는 도큐먼트(document)이고, 이 도큐먼트들의 집합을 인덱스(index)라 칭한다.

인덱스는 샤드(shard)라는 단위로 분리되어 각 노드에 분산되어 저장되며 샤드는 루씬의 단일 검색 인스턴스로 사용된다.

 


샤드는 프라이머리(primary) 샤드와 레플리카(replica) 샤드로 나뉘는데 클러스터에 노드를 추가하게 되면,

샤드들이 각 노드(클러스터 내)들로 분산되어 저장되어 진다고 하였다.
처음 생성된 샤드들은 프라이머리 샤드가 되며, 이 프라이머리 샤드들은 자신과 똑같은 복제본의 레플리카 샤드를 생성한다.

즉, 인덱스가 5개의 샤드로 구성된다고 가정할때 프라이머리 샤드 5개, 레플리카 샤드 5개, 총 10개가 분산되어 노드들 속에 저장된다.

또한, 같은 노드내에 프라이머리 샤드와 자신의 복제본인 레플리카 샤드가 중복되어 저장될 수는 없다.

위 그림의 우측에서 3번 Node가 오류로 인해 4,0번 샤드가 유실될 경우.
1번 Node의 0번 프라이머리 샤드에 의해 2번 Node에 복제되고, 2번 Node의 4번 레플리카 샤드는 프라이머리 샤드로

승격 후 4번 Node에 복제를 실시한다.

이처럼 Elasticsearch는 프라이머리-레플리카 샤드 구성으로 데이터의 무결성을 유지한다.

'IT > Elastic Stack' 카테고리의 다른 글

Elastic search Master Node & Data Node  (0) 2023.07.07
Elastic search 클러스터(Cluster)  (0) 2023.07.07
Elastic Stack Data flow  (0) 2023.07.07
Elastic Stack 구성 및 요소별 특징  (0) 2023.07.07
Elastic Stack 소개 및 사용사례  (0) 2023.07.07