인덱스(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 |