2011-10-19 1 views
1

MongoDBシャードのコレクションで新しい2.0+ compactコマンドを実行すると、コンパクトの実行中にコマンドがブロックされているというメッセージが表示されます。私の質問は、正確に何がブロックされていますか?そのシャード上のそのコレクションに対するコマンドだけ?クラスタ全体でそのコレクションへのすべてのコマンド?そのシャードのコレクションに関係なく、すべての操作?MongoDBでコンパクトを実行するときに正確にブロックされるものは何ですか?

など.........

誰でも知っていますか?

1つのシャード上のコレクションを圧縮することは、理論的には他のシャードとは独立しているため、シャーディングのポイントであるため、シャード上のそのコレクションに対するコマンドだと思います。圧縮は、クラスタ内にないごとのコレクション、ノードごとにあるので、

おかげで、 ジャスティン

答えて

0

は、通常は、セカンダリ上のコンパクトを実行します。実行中、ノードは回復状態になります。したがって、読み取りや書き込みを処理することはできません。あなたはrs.status()でそれを見ることができます。そのセカンダリが完了すると、次のセカンダリに移動します。すべてのセカンダリを完了したら、マスタを降格して(新しく圧縮されたセカンダリの1つをマスタとして引き継ぐ)&を実行し、今すぐセカンダリ(前のマスタ)でコンパクトを実行します。

mongosで実行する必要があるので、私はあなたがコンパクションからモンゴスを実行できるかどうかもわかりません。

関連する問題