이동식 컬렉션이 있는 멀티테넌트 아키텍처
버전 8.0에 추가 되었습니다.
멀티 테넌트 아키텍처에서는 애플리케이션 의 단일 인스턴스 가 여러 사용자에게 서비스를 제공합니다. 멀티 테넌트 사용자는 리소스를 주식 하며, 일반적으로 동일한 테넌트에 속한 데이터는 단일 샤드 에 보관됩니다.
멀티 테넌트 구성에 데이터베이스 당 단일 테넌트가 있고 대부분의 워크로드 가 단일 샤드 에서 발생하는 경우, 자주 액세스하는 컬렉션을 다른 샤드로 이동하여 워크로드 를 보다 균등하게 분산할 수 있습니다. 이렇게 하면 원본 샤드 의 컬렉션 수가 줄어들고 시스템 전체의 성능이 향상됩니다.
참고
비샤드 클러스터
멀티 테넌트 배포서버 가 복제본 세트 인 경우 이를 샤드 샤딩된 클러스터 로 변환하고 샤드를 추가하여 워크로드 를 보다 균등하게 분산할 수 있습니다. 자세한 내용은 다음 중 하나를 참조하세요.
MongoDB Atlas 배포를 위한 클러스터 수정
고려 사항
컬렉션을 이동하면 운영 오버헤드 가 발생합니다. 컬렉션을 이동하기 전에
sh.moveCollection()
설명서에서 성능 고려 사항을 검토 하세요.최적의 멀티 테넌트 구성은 워크로드 및 애플리케이션 요구 사항에 따라 달라집니다. 컬렉션을 새 샤드로 이동 하는 것은 공유 컬렉션이 있는 단일 데이터베이스 에서 멀티 테넌시 만큼 확장 가능한 하지 않습니다. 그러나 각 데이터베이스 가 단일 테넌트에 해당하도록 하면 보안 및 액세스 패턴을 더 사용자 지정할 수 있습니다.
컬렉션 간 작업(예:
$lookup
또는 여러 컬렉션에 액세스 하는 트랜잭션)의 성능을 최적화하려면 지정된 테넌트에 대한 모든 컬렉션을 동일한 샤드 에 배치합니다.