샤드 배치 정책
샤드 배치 정책 (Shard placement policy) (shard-placement-policy)
Redis Enterprise Software에서 마스터와 레플리카 샤드가 클러스터 노드에 어디에 놓이는지는 데이터베이스와 노드 성능에 영향을 줄 수 있어요. 이 페이지에서는 샤드 배치 정책(shard placement policy)이 무엇인지, 그리고 optimal한 성능과 복원력을 유지하기 위해 어떤 정책을 골라야 하는지 옆에서 설명드릴게요.
마스터 샤드와 그에 대응하는 레플리카 샤드는 데이터 복원력(data resiliency)을 위해 항상 서로 다른 노드에 배치돼요. 샤드 배치 정책은 최적의 성능과 복원력을 유지하는 데 도움을 줍니다.
샤드 배치를 결정하는 고려 사항 (Considerations that determine shard placement)
샤드 배치 정책 외에도 샤드 배치를 결정하는 고려 사항은 다음과 같아요.
- 마스터와 레플리카 샤드의 분리
- 사용 가능한 영속성(persistence) 및 Auto Tiering 저장소
- 랙-존 인식 (Rack-zone awareness)
- 데이터베이스가 가득 찼을 때 호스팅할 수 있는 메모리
샤드 배치 정책 (Shard placement policies)
샤드 배치 정책은 두 가지예요.
dense- 가능한 한 가장 적은 수의 노드에 최대한 많은 샤드를 배치해서 프록시(proxy)와 데이터베이스 샤드 사이의 레이턴시를 줄여요. RAM 기반 데이터베이스에서 메모리 리소스를 최적화하기 위해 권장돼요.sparse- 클러스터의 가능한 한 많은 노드에 샤드를 분산해서 클러스터 노드 전반에 트래픽을 분산해요. Auto Tiering이 활성화된 데이터베이스에서 디스크 리소스를 최적화하기 위해 권장돼요.
Redis Software 클러스터를 만들면, 기본 샤드 배치 정책(dense)이 클러스터에서 만드는 모든 데이터베이스에 할당돼요.
여러분은 다음을 할 수 있어요.
- 클러스터의 기본 샤드 배치 정책을
sparse로 변경해서, 클러스터가 만드는 모든 데이터베이스에 그 정책을 적용하게 할 수 있어요. - 데이터베이스를 만든 뒤 각 데이터베이스의 샤드 배치 정책을 변경할 수 있어요.
Dense 샤드 배치 정책 (Dense shard placement policy)
dense 정책에서 클러스터는 데이터베이스 샤드를 가능한 한 적은 노드에 배치해요. 노드가 모든 샤드를 호스팅할 수 없으면, 최적의 노드 상태를 유지하기 위해 일부 샤드를 다른 노드로 옮겨요.
예를 들어, 3개 노드 클러스터에서 2개 마스터와 2개 레플리카 샤드를 가진 데이터베이스에 dense 샤드 배치 정책을 적용하면, 2개 마스터 샤드는 한 노드에, 2개 레플리카 샤드는 다른 노드에 호스팅돼요.
OSS 클러스터 API가 활성화되지 않은 RAM 기반 Redis 데이터베이스에서는 dense 정책을 사용해 성능을 최적화하세요.

그림: dense 배치 정책으로 3개 노드에 2개 마스터 샤드(빨강)와 2개 레플리카 샤드(흰색)
Sparse 샤드 배치 정책 (Sparse shard placement policy)
sparse 정책에서 클러스터는 샤드를 가능한 한 많은 노드에 배치해요. 이렇게 하면 트래픽이 클러스터 노드 전반에 널리 퍼져 분산됩니다. Auto Tiering이 활성화된 데이터베이스에서 디스크 리소스를 최적화하기 위해 권장돼요. (확인 필요: 원문의 sparse 정책에 대한 추가 상세)