2012-02-22 2 views
2

シャードされたクラスタに書き込む場合、大きなインサートバッチで実際に何が起こっていますか? MongoDbは実際に バルク挿入をサポートしていますか、InserBatchは実際にはサーバレベルの に一度に1つずつ挿入していますか?これはシャーディングとどのように機能しますか?この はmongosは、各項目のシャードキーが何であるか を把握し、右側 サーバへのルート、それがするために、バッチ内のすべての項目を見てみましょうということを意味していますか?これにより、一括挿入が存在する場合は破損し、 は効率的ではないようです。シャーディング ソリューションのInsertBatchの仕組みは何ですか?私はバージョン2.0を使用していて、それが何らかの差異を生み出すなら、アップグレードするつもりですシャーディングのインサートバッチ

答えて

3

バルクインサートは実際のMongoDBの機能であり、往復の回数が少ないため、ドキュメントごとの個別の挿入よりもやや優れています。

シャード環境では、mongosがバルクインサートを受け取ると、バルクのどの部分をどのシャードに送る必要があるかがわかります。 2.0と2.1の間に違いはなく、断片化されたデータベースに一括してデータを挿入するのが最も効率的です。

あなたはmongos作品はそれを見て、ここでソースコードです持っているかを正確に興味がいる場合:

https://github.com/mongodb/mongo/tree/master/src/mongo/s