移動可能なコレクションを備えたマルチテナント アーキテクチャ
項目一覧
バージョン8.0の新機能。
マルチテナント アーキテクチャでは、アプリケーションの 1 つのインスタンスが複数のユーザーにサービスを提供します。 マルチテナント ユーザーはリソースを共有し、通常同じテナントに属するデータは単一のシャードに保存されます。
マルチテナント構成でデータベースごとに 1 つのテナントがあり、そのワークロードの過半数が単一のシャードで行われる場合は、頻繁にアクセスされるコレクションを他のシャードに移動して、ワークロードをより均等に分散できます。 これにより、元のシャード上のコレクションの数が減り、システム全体のパフォーマンスが向上します。
注意
非シャーディングされたクラスター
マルチテナント配置がレプリカセットである場合は、それを シャーディングされたシャーディングされたクラスターに変換し、追加のシャードを追加して、ワークロードをより均等に分散できます。 詳細については、次のいずれかを参照してください。
MongoDB Atlas配置のクラスターを変更する
Considerations
コレクションの移動には運用オーバーヘッドが伴います。 コレクションを移動する前に、パフォーマンスに関する考慮事項について、
sh.moveCollection()
のドキュメントを確認してください。最適なマルチテナント構成は、ワークロードとアプリケーションのニーズによって異なります。 コレクションを新しいシャードに移動すると、 共有コレクション を含む単一データベースでのマルチテナンシーとしてのスケーラビリティはありません。 ただし、各データベースを単一のテナントに対応させると、よりカスタマイズ可能なセキュリティとアクセス パターンが可能になります。
クロスコレクション操作(
$lookup
や複数のコレクションにアクセスするトランザクションなど)のパフォーマンスを最適化するには、特定のテナントのすべてのコレクションを同じシャードに配置します。