샤드 배치 정책
샤드 배치 정책 (Shard placement policy) (shard-placement-policy-2)
샤드 배치 정책(shard placement policy)에 대한 자세한 정보를 설명할게요.
| Redis Software |
|---|
Redis Software에서 클러스터 노드 위에 master 샤드와 replica 샤드가 어디에 배치되는지는 데이터베이스와 노드 성능에 영향을 줄 수 있어요. master 샤드와 그에 대응하는 replica 샤드는 데이터 복원성(data resiliency)을 위해 항상 서로 다른 노드에 배치됩니다. 샤드 배치 정책은 최적의 성능과 복원성을 유지하는 데 도움이 돼요.
샤드 배치 정책 외에도 샤드 배치를 결정하는 고려사항은 다음과 같아요.
- master 샤드와 replica 샤드의 분리
- 사용 가능한 영속성(Persistence) 저장소와 Auto Tiering 저장소
- 랙-존 인식(Rack-zone awareness)
- 데이터베이스가 완전히 채워졌을 때 데이터베이스를 호스팅할 수 있는 가용 메모리
샤드 배치 정책은 두 가지가 있어요.
dense- 가능한 한 적은 수의 노드에 최대한 많은 샤드를 배치해 프록시와 데이터베이스 샤드 사이의 지연 시간을 줄입니다. 메모리 자원을 최적화하기 위해 Redis on RAM 데이터베이스에 권장됩니다.sparse- 클러스터의 가능한 한 많은 노드에 샤드를 펼쳐 클러스터 노드 간에 트래픽을 분산합니다. 디스크 자원을 최적화하기 위해 Auto Tiering이 활성화된 데이터베이스에 권장됩니다.
Redis Software 클러스터를 만들면 기본 샤드 배치 정책(dense)이 클러스터에 생성하는 모든 데이터베이스에 할당됩니다.
할 수 있는 것들:
- 클러스터의 기본 샤드 배치 정책을
sparse로 변경해, 클러스터가 생성하는 모든 데이터베이스에 그 정책을 적용하게 할 수 있어요. - 데이터베이스를 만든 후 각 데이터베이스의 샤드 배치 정책을 변경할 수 있습니다.
dense 정책에서 클러스터는 데이터베이스 샤드를 가능한 한 적은 노드에 배치합니다. 노드가 모든 샤드를 호스팅할 수 없을 때는 최적의 노드 상태를 유지하기 위해 일부 샤드가 다른 노드로 이동합니다.
예를 들어, 세 개 노드가 있는 클러스터의 dense 샤드 배치 정책에서 두 개의 master 샤드와 두 개의 replica 샤드가 있는 데이터베이스는, 두 개의 master 샤드가 한 노드에 호스팅되고 두 개의 replica 샤드가 다른 노드에 호스팅됩니다.
OSS 클러스터 API가 활성화되지 않은 Redis on RAM 데이터베이스에서는 성능을 최적화하기 위해 dense 정책을 사용하세요.
그림: dense 배치 정책으로 두 개의 master 샤드(빨강)와 두 개의 replica 샤드(흰색)를 가진 세 개 노드
sparse 정책에서 클러스터는 데이터베이스의 샤드를 모든 가용 노드에 분산하기 위해 가능한 한 많은 노드에 샤드를 배치합니다. 모든 노드에 데이터베이스 샤드가 있으면 샤드는 최적의 노드 상태를 유지하도록 노드 간에 균등하게 분산됩니다.
예를 들어, 세 개 노드가 있는 클러스터의 sparse 샤드 배치 정책에서 두 개의 master 샤드와 두 개의 replica 샤드가 있는 데이터베이스:
- 노드 1이 master 샤드 중 하나를 호스팅
- 노드 2가 첫 번째 master 샤드의 replica를 호스팅
- 노드 3이 두 번째 master 샤드를 호스팅
- 노드 1이 master 샤드 2의 replica 샤드를 호스팅
OSS 클러스터 API가 활성화된 Redis on RAM 데이터베이스와 Auto Tiering이 활성화된 데이터베이스에서는 성능을 최적화하기 위해 sparse 정책을 사용하세요.
그림: sparse 배치 정책으로 두 개의 master 샤드(빨강)와 두 개의 replica 샤드(흰색)를 가진 세 개 노드
각 데이터베이스의 샤드 배치 정책을 구성할 수 있습니다.
출처: 공식문서