0

インデックスに関するMongoDBのドキュメントを読んだところ、http: //docs.mongodb.org/manual/applications/indexes/#ensure-indexes-fit-ramにあるこのアサーションに少し戸惑い、不安を感じていました。

複数のコレクションがあり、それを使用している場合は、すべてのコレクションのすべてのインデックスのサイズを考慮する必要があります。インデックスとワーキングセットは、同時にRAMに収まる必要があります。

では、シャードに新しいノードが追加されたときに、これはどのようにスケーリングされるのでしょうか。576ノードすべてが8Gbで制限されており、それぞれ4Gbのコレクションが12個(関連するインデックスを含む)、16Gbのコレクションが3個(インデックスを含む)あるとします。12個のコレクションを効率的に照会できるように、シャーディングスプレッドはノード間でどのように機能しますか?

4

1 に答える 1

2

シャーディングするときは、データをさまざまなシャードに分散します。mongosプロセスは、データを取得する必要のあるシャードにクエリをルーティングします。そのため、シャードが保持しているデータを確認するだけで済みます。シャーディングを使用する場合から引用するには:

次の場合は、シャードクラスターの展開を検討する必要があります。

  • データセットは、システム内の単一ノードのストレージ容量に近づくか、それを超えます。
  • システムのアクティブなワーキングセットのサイズは、システムのRAMの最大量の容量をすぐに超えます。

また、ワーキングセット!=コレクション全体に注意してください。ワーキングセットは次のように定義されます。

MongoDBが定期的に使用するデータのコレクション。このデータは通常(または好ましくは)RAMに保持されます。

たとえば、1 TBのデータがありますが、通常は50GBのみが使用/クエリされます。そのサブセットはRAMに保持されることが好ましい。

于 2013-01-07T06:03:51.493 に答える