MongoDB Sharding (8.0)

0️⃣1️⃣·6일 전
0

Database

목록 보기
3/3

Sharding

  • 데이터를 여러 머신에 분산하는 방법
  • 대규모 데이터 세트와 높은 처리량 작업의 배포를 지원
  • 단일 지점 서버의 용량 한계의 문제점을 극복하기 위한 방법
    • 쿼리 속도가 높으면 서버의 CPU 용량 고갈 문제
    • 시스템의 RAM보다 작업 세트 크기가 크면 디스크 드라이브의 I/O 용량에 부담
  • 단일 지점에 수직 확장을 하는 것이 아닌, 수평적 확장을 통해서 로드를 분산하고 서버를 추가하는 작업
  • 각 머신이 전체 워크로드의 일부를 분산 처리하면서, 단일 고속 대용량 서버보다 더 나은 효율성을 제공하는 방법
  • 컬렉션 수준에서 데이터를 샤딩하여 클러스터의 샤드 전체에 컬렉션 데이터를 분산

Shard Key

  • 샤드 키를 사용해서 샤드 전반에서 컬렉션 문서를 분산
  • 샤드 키는 문서의 필드 하나 또는 여러 필드로 구성
  • 샤드 키 선택
    • Cardiniality
      • 밸런서가 생성할 수 있는 최대 청크 수를 결정
      • 카디널리티가 높은 샤드 키를 선택해서 클러스터의 수평 규모 조정
      • 데이터 모델에서 카디널리티가 낮은 키에 샤딩이 필요한 경우 샤드 키의 인덱싱된 필드 조합을 사용하여 카디널리티를 높이는 것이 중요
    • Frequency
      • 지정된 샤드 키 값이 데이터에서 발생하는 빈도
      • 특정 샤드에 몰리는 경우 병목 현상이 발생
      • 특정 샤드에 골고루 데이터가 발생하는 것이 중요
  • 단조롭게 변경되는 샤드 키 (증가 OR 감소)
    • 해시 샤딩을 적용해서 균일한 데이터 분배를 보장하도록 변경
post-custom-banner

0개의 댓글