데이터 노드 샤드의 이해
프라이머리 샤드와 레플리카 샤드
1.
프라이머리 샤드
a.
데이터 원본관리
b.
색인 작업 담당
c.
클러스터 핵심 데이터 저장
d.
인덱스 생성시 한번만 설정가능
2.
레플리카 샤드
a.
데이터 복사본 관리
b.
읽기 요청 부하 분산
c.
데이터 손상 방지
d.
프라이머리 샤드 장애시 레플리카 샤드가 승격
e.
동적 추가 가능
f.
확장성 높음
스케일 업 vs 스케일 아웃
1.
스케일 업(sacle-up)
a.
하드웨어 업그레이드를 통한 단일 노드 성능 향상
b.
CPU 메모리 저장 공간 증설
c.
물리적 한계 및 비용 비효율 문제 발생
d.
샤드 성능 향상에 초점
2.
스케일 아웃(sacle-out)
a.
클러스터에 추가 노드를 포함하여 확장
b.
병렬 처리 능력 및 데이터 분산 저장 증가
c.
클라우드 환경에서 선호
d.
샤드 분산 및 장애 대비에 초점
샤드 내부의 불변성
1.
데이터 불변성과 시스템 안정성
a.
데이터가 한번 색인 후 변경 불가능
b.
장애 발생시 신속한 복구 가능
c.
샤드에 기록된 데이터는 안정적으로 보관
d.
불변 데이터 구조로 예상치 못한 시스템중단에도 데이터 보호
2.
검색 성능의 최적화
a.
불변 역색인으로 빠른 속도의 검색
b.
캐시 및 최적화 알고리즘 적용
c.
검색 쿼리에 대해 높은 읽기 성능 제공
d.
검색 최적화를 위한 다양한 알고리즘 적용
3.
데이터 변경과 샤드 관리
a.
데이터 변경 필요시 새로운 색인 추가로 반영
b.
기존 데이터는 시간 경과에 따라 자동제거
c.
새로운 데이터 추가는 독립적으로 처리되어 복잡한 Lock 알고리즘 불필요
d.
샤드 내 데이터는 장애 발생시에도 무결한 상태 유지