「movechunk」コマンドを使用すると (その結果、バランサーが実行されている場合)、レプリカ セットのプライマリまたはセカンダリ メンバーで読み取りとロックが発生しますか?
私たちのアプリケーションは現在、セカンダリから読み取りを行っていないため、シャード バランサー / movechunk コマンドがプライマリ メンバーのパフォーマンスに影響を与えずに、セカンダリ メンバーから読み取り、ロックするだけであればよいでしょう。
「movechunk」コマンドを使用すると (その結果、バランサーが実行されている場合)、レプリカ セットのプライマリまたはセカンダリ メンバーで読み取りとロックが発生しますか?
私たちのアプリケーションは現在、セカンダリから読み取りを行っていないため、シャード バランサー / movechunk コマンドがプライマリ メンバーのパフォーマンスに影響を与えずに、セカンダリ メンバーから読み取り、ロックするだけであればよいでしょう。
シャード バランサーは、移行中にシャードのプライマリ メンバーに対して読み取りと書き込みを実行する必要があります。これは、シャード間でデータの一貫した状態を維持するために必要です。ただし、移行中の読み取りおよび書き込み中に発生するロックは、システムへの通常の読み取りおよび書き込み中に発生するものと同じです。したがって、これらはパフォーマンスに重大な影響を与えるべきではありません。
移行によってパフォーマンスが大幅に低下している場合は、クラスターに他の問題があることを示している可能性があります。たとえば、最適とは言えないシャード キーを選択した場合、移行が頻繁に発生し、システムに負担がかかる可能性があります。または、システムがすでに容量に近い非常に重い負荷の下で動作している場合、移行によって余分な作業が追加され、パフォーマンスが著しく低下する可能性があります。