Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 
Page Tree
root@self


데이터셋이 매우 크거나 질의 처리량이 매우 높다면 복제만으로 부족하고 데이터를 파티션으로 쪼갤 필요가 있다. 이 작업을 샤딩이라고 한다.

데이터 파티셔닝을 원하는 주된 이유는 확장성이다.


키-값 데이터 파티셔닝

  • 파티셔닝의 목적은 데이터와 질의 부하를 노드 사이에 고르게 분산시키는 것이다.


키 범위 기준 파티셔닝

  • 파티셔닝하는 방법 중 하나는 종이 백과사전처럼 각 파티션에 연속된 범위의 키를 할당하는 것.

키의 해시값 기준 파티셔닝

  • 쏠림(skewed)과 핫스팟의 위험 때문에 많은 분선 데이터스토어는 키의 파티션을 정하는데 해시 함수를 사용한다.


쏠린 작업부하와 핫스팟 완화

  • 쓰기 처리량이 낮은 대다수의 키에도 적용하면 불필요한 오버헤드가 생긴다. 따라서 어떤 키가 쪼개졌는지 추적할 방법도 있어야 한다. 아마도 미래엔 데이터 시스템이 쏠린 작업부하를 자동으로 감지해서 보정할 수 있겠지만 아직은 애플리케이션에 대한 트레이드오프를 꼼꼼히 따져볼 필요가 있다.


파티셔닝과 보조 색인

  • 보조 색인이 있는 데이터베이스를 파티셔닝하는 데 널리 쓰이는 두 가지 방법이 있다. 

    • 문서 기준 보조 색인 파티셔닝(지역색인)

    • 용어 기반 파티셔닝(전역색인)

      • 찾고자 하는 용어에 따라 색인의 파티션이 결정되므로 이런 식의 색인을 용어 기준으로 파티셔닝됐다.

파티션 재균형화

  • 클러스터에서 한 노드가 담당하던 부하를 다른 노드로 옮기는 과정을 재균형화라고 함.


정리

파티셔닝의 목적은 핫스팟(불균형적으로 높은 부하를 받는 노드)이 생기지 않게 하면서 데이터와 질의 부하를 여러 장비에 균일하게 분배하는 것이다.