お時間をいただきありがとうございます。
特定の分割されたセットアップでは、通信する構成サーバーを指定しながらmongosが起動されます。次の mongos オプションから始めるとします。
--configdb=cf1,cf2,cf3
すべてが元気でダンディです。mongos を再起動する (または別の mongos を起動する) 場合:
-- configdb=cf3,cf2,cf1
次のエラーが発生します。
Tue Jul 9 23:32:41 uncaught exception: error: { "$err" : "could not initialize sharding on connection rs1/db1.me.net:27017,db2.me.net:27017,db3.me.net:27017, :: caused by :: mongos specified a different config database string : stored :cfg1:27017,cfg2:27017,cfg3:27017 vs given :cfg3:27017,cfg2:27017,cfg1:27017","code" : 15907}
私の質問は、構成サーバー文字列の順序に敏感な推論モンゴは何ですか? ある時点で、さまざまなサーバーのホスト名/ポートを解析すると思いますが、セットを比較してみませんか? ソースコードから文字列の比較に過ぎないことがわかりますが、私の質問はこれの根本的な理由です。
この問題の背景: mongo の展開にシェフを使用しています。最近、構成サーバーを同じホスト名で移行する演習を行いました。ただし、シェフが構成サーバーを選択した順序が変更されたため、これは依然として破壊的なプロセスであり、mongos がプロセスを開始する順序を変更しました。この問題がシェフの機能に直接起因していることは理解していますが、Mongo がこれほど柔軟ではない理由に興味があります。
お時間をいただきありがとうございました。