(私はMongo 3.2.4を使用しています)非常に長い時間をかけて空集合をシャーディングする
空のコレクションを破棄すると約100秒かかります。入力されるコマンドの例:
注意しなければならないのは、シャードタグは特定の領域にデータをピンで固定します。ロンドン、ニューヨーク、香港。
私は尾mongosログは私がシャードコマンドを参照することができ
、それが持っているこの:次にgoing to create 1 chunk(s) for: db_rel.timeseries3
:
ChunkManager: time to load chunks for ddp_rel.timeseries3: 90ms sequenceNumber: 12102 version: 1|0||58c6e0ea395448d97cb66ba8 based on: (empty)
は、これまでのところ、これは賢明なようです。しかし、ChunkManagerがデータ内の他のコレクションを通過していることがわかります。そのうちの100個は同じことをしています。それぞれには約200msがかかります。これは合計すると非常に長い時間です。
コレクションが空(ログの状態の最後の部分は「(空)」を基準にしているため)と考えていますが、ドキュメントが見つかりません。私が新しいコレクションを破棄すると、ChunkManagerは起動し、他のコレクションのデータを配信しようとしますが、空であるため、移行するリージョンがわからないためです。
誰かが上記の仮説を確認できますか?
ChunkManagerがすべてのコレクションを通過しないように、最初のチャンクにタグを付ける方法はありますか?または他の回避策ですか?
> 10,000個のコレクションを作成しようとしているので、新しい空のコレクションのshardコマンドを100秒以上実行することは不可能です。
のみコレクション名ではなくnamspaceが(データベース名を含む)設定に挿入されたことにより、バグがシャードタグにありました.tagsコレクション。 – Chill
ChunkManagerはまだ生きているように見えて、新しいコレクションを破棄すると、データベース内のすべてのシャードされたコレクションを通過しますが、各コレクションは1ミリ秒しかかかりません。 FYIのように、私はコレクションにデータを追加しようとしましたが、ChunkManagerがコレクションを呼び出していることがわかりましたので、 "(空の)ベース"は誤解を招いていました。すべてのコレクションがチェックされる理由についての情報は高く評価され、可能であればどのように停止するかについての情報があります。 – Chill