인프런 커뮤니티 질문&답변

이상민님의 프로필 이미지
이상민

작성한 질문수

ElasticSearch Essential

여섯 번째 강의 - 색인 과정 이해하기

레플리카 샤드에 대해

작성

·

249

·

수정됨

0

6, 7강을 듣고 의문점이 있는데요.

  1. "number_of_replicas"를 2 이상으로 설정하고 노는 데이터 노드가 없는 상태라면 각 노드에 여러 개의 replica 샤드가 있는 상태가 되나요? 만약 그렇다면 이는 비효율적이라 생각하는데 어떻게 처리하나요?

  2. 모든 노드가 색인과 검색을 처리하는 것이 좋다는 것은 각 노드에 primary, replica shard가 동시에 존재하는 것이 좋다는걸 의미하나요? 아니면 클러스터 역할을 수행하기 위해 각 노드에 적어도 하나의 shard가 있어야 한다는 것을 의미하나요?

  3. 데이터 노드를 늘리고 number_of_replicas를 늘리면 7-12페이지 처럼 남는 노드에 replica 샤드가 들어가는 건 정해진 건가요?

 

답변 1

1

강진우님의 프로필 이미지
강진우
지식공유자

  1. number_of_replicas를 2 이상으로 설정하면 말씀 하신 것처럼 노드에 여러개의 샤드가 배치 됩니다. 다만 이것 만으로 비효율적이라고 판단할 순 없습니다. 예를 들어 많은 양의 검색 쿼리를 처리하고 각 노드의 CPU Usage가 충분히 높다면 (ex. 이것도 환경에 따라 다르겠지만 저 같은 경우는 피크 기준으로 CPU Usage 40% 정도를 충분히 높게 사용하고 있다고 보고 있습니다.) 현재 존재하는 노드들을 효율적으로 사용하고 있다고 볼 수 있습니다. 하지만 노드들의 CPU Usage 가 높지 않다면, 오히려 노드의 수를 줄이고 number_of_replicas를 줄이는 게 더 효율적으로 사용하게 될 수 있습니다.

  2. 네 맞습니다. 가급적 모든 노드가 검색 및 색인 요청을 처리할 수 있도록 프라이머리 샤드, 레플리카 샤드를 가지는 게 좋습니다. 특히 색인 작업은 프라이머리 샤드에서 발생하기 때문에 만약 특정 노드에 프라이머리 샤드가 없다면 해당 노드는 색인 작업에 참여하지 않게 되고 이는 클러스터 로서의 강점을 충분히 활용하지 못한 상황이 됩니다.

  3. 샤드의 재배치는 여러가지 기준으로 일어나는데, 7-12 처럼 노드를 추가하고 number_of_replicas를 늘리면 새로운 레플리카 샤드가 추가된 노드에 배치되는 건 정해진 건 아닙니다. 다만 설명의 편의성 그렇게 될 거라고 가정한 상황 입니다. (레플리카 샤드가 추가 노드에 배치된 가능성이 가장 높긴 합니다.) 정해져 있진 않습니다.

이상민님의 프로필 이미지
이상민

작성한 질문수

질문하기