たとえば、2 つのシャードとシャードごとに 2 台のマシン、合計 4 台の物理マシンの MongoDB セットアップがあります。また、いくつかのドキュメントを照会し、各ドキュメントで何らかの処理を行い、古いドキュメントを置き換える各ドキュメントの新しいバージョンを DB に書き戻すプログラムもあります (ただし、シャード キーは同じに保ちます)。
ここで、同じプログラムを分散した方法で実行したいと考えているため、4 つの物理マシンのそれぞれでプログラムの個別のインスタンスを実行するのが簡単なアイデアです。
注意が必要なのは、プログラムの各インスタンスが、同じ物理マシン上にあるデータのみを取得して処理するようにすることです (ネットワーク上でのデータ移動を最小限に抑えるため)。
プログラムを変更する代わりに(「config」dbなどを照会してローカルマシンに存在するドキュメントを確認するため)、プログラムの各インスタンスをローカルmongodプロセスに接続するだけにすることを考えています。そうすれば、まったく同じクエリを実行することで、ローカルの結果のみを取得して処理する必要があります。
そのアプローチは機能しますか?私は何かが恋しいですか?