Docs Menu

移動可能なコレクションを備えたマルチテナント アーキテクチャ

バージョン8.0の新機能

マルチテナント アーキテクチャでは、アプリケーションの 1 つのインスタンスが複数のユーザーにサービスを提供します。 マルチテナント ユーザーはリソースを共有し、通常同じテナントに属するデータは単一のシャードに保存されます。

マルチテナント構成でデータベースごとに 1 つのテナントがあり、そのワークロードの過半数が単一のシャードで行われる場合は、頻繁にアクセスされるコレクションを他のシャードに移動して、ワークロードをより均等に分散できます。 これにより、元のシャード上のコレクションの数が減り、システム全体のパフォーマンスが向上します。

注意

非シャーディングされたクラスター

マルチテナント配置がレプリカセットである場合は、それを シャーディングされたシャーディングされたクラスターに変換し、追加のシャードを追加して、ワークロードをより均等に分散できます。 詳細については、次のいずれかを参照してください。

  • コレクションの移動には運用オーバーヘッドが伴います。 コレクションを移動する前に、パフォーマンスに関する考慮事項について、 sh.moveCollection()のドキュメントを確認してください。

  • 最適なマルチテナント構成は、ワークロードとアプリケーションのニーズによって異なります。 コレクションを新しいシャードに移動すると、 共有コレクション を含む単一データベースでのマルチテナンシーとしてのスケーラビリティはありません。 ただし、各データベースを単一のテナントに対応させると、よりカスタマイズ可能なセキュリティとアクセス パターンが可能になります。

  • クロスコレクション操作( $lookupや複数のコレクションにアクセスするトランザクションなど)のパフォーマンスを最適化するには、特定のテナントのすべてのコレクションを同じシャードに配置します。