독서

[데이터 중심 애플리케이션 설계] 6장

오렌지색 귤 2023. 11. 17. 20:30
반응형

핵심 내용

 

1. 주요 파티셔닝 기법

키 범위 파티셔닝 : 키가 정렬돼 있고 개별 파티션은 어떤 최솟값과 최댓값 사이에 속하는 모든 키를 담당한다. 키가 정렬돼 있어 범위 질의가 효율적이지만, 애플리케이션에서 정렬 순서가 서로 가까운 키에 자주 접근하면 핫스팟이 생길 위험이 있다.

이 방법에서는 보통 한 파티션이 너무 커지면 키 범위를 두 개로 쪼개 동적으로 재균형화를 실행한다.

해시 파티셔닝 : 각 키에 해시 함수를 적용하고 개별 파티션은 특정 범위의 해시값을 담당한다. 이 방법을 쓰면 키 순서가 보장되지 않아 범위 질의가 비효율적이지만 부하를 더욱 균일하게 분산할 수 있다.

해시 파티셔닝을 사용할 때는 보통 고정된 개수의 파티션을 미리 만들어 각 노드에 몇 개씩의 파티션을 할당하며 노드가 추가되거나 제거되면 파티션을 통째로 노드 사이에서 이동한다. 동적 파티셔닝을 쓸 수도 있다.

 

2. 파티셔닝과 보조 색인 사이의 상호작용

문서 파티셔닝 색인용어 파티셔닝 색인 : 자세한 내용은 아래 참조

 

 

배운 내용

 

1. 문서 기준 보조 색인 파티셔닝

문서 기준 보조 색인 파티셔닝에서는 각 파티션이 완전히 독립적으로 동작한다. 각 파티션은 자신의 보조 색인을 유지하며 그 파티션에 속하는 문서 담당한다. 문서 파티셔닝 색인은 지역 색인이라고도 한다.

그러나 문서 ID에 특별한 작업을 하지 않는다면 특정한 조건의 데이터들이 동일한 파티션에 저장되리라는 보장이 없으므로, 읽기 질의를 보낼 때 모든 파티션으로 질의를 보내야 한다.

 

2. 용어 기준 보조 색인 파티셔닝

모든 파티션의 데이터를 담당하는 전역 색인을 만들 수도 있다. 기본키 색인과는 다른 식으로 파티셔닝을 한다.

문서 파티셔닝 색인에 비해 읽기가 효율적이다. 그러나 쓰기가 느리고 복잡하다는 단점이 있다. 단일 문서를 쓸 때 해당 색인의 여러 파티션에 영향을 줄 수 있기 때문이다.

현실에서는 전역 보조 색인은 대개 비동기로 갱신되므로 반영 지연 시간이 길어질 수 있다.

 

3. 리밸런싱 전략

해시값에 mod N 연산 수행 : 대부분의 키가 노드 간에 옮겨져야 하므로 쓰면 안된다

파티션 개수 고정 : 파티션을 노드 대수보다 많이 만들고 각 노드에 여러 파티션을 할당, 이후 균일하게 분배될 때까지 파티션 몇 개를 통째로 이동한다. 파티션 할당 변경은 시간이 걸리는 작업이므로, 데이터 전송이 진행 중인 동안에는 읽기 및 쓰기 작업에 기존 할당된 파티션을 사용한다.

다만 전체 데이터셋의 크기 변동이 심하다면 적절한 파티션 개수를 정하기 어렵다는 단점이 있다.

동적 파티셔닝 : 키 범위 파티셔닝을 사용하는 데이터베이스에서는 파티션을 동적으로 만든다. 파티션 개수가 전체 데이터 용량에 맞춰 조정되므로 데이터 양이 작으면 파티션 개수가 적어도 되며, 데이터 양이 거대하다면 개별 파티션의 크기는 설정된 최대치로 제한된다.

그러나 빈 데이터베이스는 사전 정보가 없으므로 시작할 때는 파티션이 하나다. 이를 해결하기 위해 초기 파티션 집합을 설정하는 사전 분할 기능이 존재한다.

노드 비례 파티셔닝 : 동적 파티셔닝고정 파티션 방식 모두 파티션 개수는 노드 대수와 독립적이다. 노드 비례 파티셔닝에서는 노드당 할당되는 파티션 개수를 고정한다. 노드 개수가 변하지 않는다면 개별 파티션 크기가 데이터셋 크기에 비례해서 증가하지만 노드 대수를 늘리면 파티션 크기는 다시 작아진다.

새 노드가 클러스터에 추가되면 고정된 개수의 파티션을 무작위로 선택해 분할하고, 각 분할된 파티션의 절반은 그대로 두고 다른 절반은 새 노드에 할당한다.

 

 

찾아본 내용

없음

 

궁금한 내용

없음

 

반응형