1

最近、MongoDB セットアップのロジックを次のように変更しました。クラスター内のすべてのレプリカ セットの半分には、シャードされていないデータベースと対応するコレクションが含まれています。残りの半分には、シャードされたコレクションのみが含まれます。

データベースはまだレプリカセットに分散していますが、知りたいのは次のことです。データベース自体を、そのコレクションを保持していないサーバー上に置くことに何か不利な点はありますか? リソースを浪費する可能性のある MongoDB が保持するメタデータはありますか?

4

1 に答える 1

-2

コレクションを保持していないサーバー上にデータベース自体を配置することに不利な点はありますか?

これは、シャーディングの場合には決して当てはまりません。すべてのコレクションは、データベースを含む最初の (マスター) サーバーで開始され (データベース レベルでシャーディングを有効にすると考えてください)、他のシャード (レプリカ セット) にスケールアウトします。

データベースとそのコレクションは、データを他のシャードに移動する必要があるため、他のシャードで作成されます。

そのため、それ以上の質問はおそらくその知識によって不活性になっています。

編集

「データベースを含む」

つまり、データベースのコピーです。

これは、データベースとコレクションが必要に応じて各シャードで作成されることを述べている次の段落で示唆されています。

シャード、またはあなたの場合のレプリカセットは、それ自体のデータについてのみ知っており、そのデータが必要な場合にのみ存在します。

構成サーバーは、シャードを範囲境界とともにマップするサーバーです。

考えてみると、1 番目のノードにコレクションがあり、n 番目のノードにはコレクションがない場合、そこに別のコレクションがあり、不要なメタデータを格納できると考えていると思います。ただし、コレクションが作成されて名前空間ファイルに追加されるまで、データが存在することはありません。

于 2013-07-17T12:39:32.620 に答える