더북(TheBook)

파티셔닝에서 키를 어떻게 사용할까?

파티셔닝이란 키-값 쌍을 그룹으로 묶어 클러스터에 있는 서로 다른 노드에 할당하는 프로세스를 말한다. 해싱은 모든 노드에 키와 값을 고르게 분산하도록 파티셔닝 하는 데 흔히 쓰이는 방법이다. 또 다른 방법이 있는데, 바로 범위 파티셔닝이다.

범위 파티셔닝은 연속적인 값을 묶어 클러스터에 있는 같은 노드에 전송하는 작업을 말한다(그림 5-1). 이 경우 정렬 순서는 키에 정의되어 있다고 가정한다. 예를 들어 고객 번호, 일자, 부분 식별자로 파티셔닝할 수 있다. 표 5-1에 나온 것처럼 범위 파티셔닝은 키와 파티션(노드)을 매핑하는 표가 필요하다.


▼ 표 5-1 범위 파티션 표

값의 범위

할당된 노드

cust:00001-cust:00999

서버 1

cust:01000-cust:01999

서버 2

cust:02000-cust:02999

서버 3

cust:04000-cust:04999

서버 4


▲ 그림 5-1 파티셔닝 방법에 따라 노드에 할당되는 키 값이 달라진다


범위 파티셔닝을 사용하기로 결정했다면 데이터양이 얼마나 증가할 것인지 고려해 봐야 한다. 기존 파티셔닝 방법을 변경해야 한다면 일부 키는 다른 노드로 재할당되고 데이터도 다른 노드로 이동될 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.