/ mongodb

MongoDB : Replica Set の参照設定

📝MongoDB のドキュメントを箇条書きしていく。随時更新

Env / Versions

  • MongoDB v3.6

参照の優先度設定

  • ⚠️ Primary から Secondary への非同期レプリケーションには遅延が発生するため、古いデータが返される可能性がある

参照のモード

  • 各 MongoDB ドライバーは以下の5つのモードをサポートしている

primary

  • Primary からのみ参照する
  • Primary が使用できない場合はエラーになる
  • デフォルト

primaryPreferred

  • Primary から参照するが使用できない場合は Secondary から参照する

secondary

  • Secondary からのみ参照する
  • 使用可能な Secondary が無い場合はエラーになる

secondaryPreferred

  • Secondary から参照するが使用可能な Secondary が1台もない場合は Primary から参照する

nearest

  • ネットワークレイテンシが最も低いメンバーから参照する
  • Primary, Secondary 問わない

サーバ選択アルゴリズム

  • サーバーの選択は操作ごとに1回発生し、参照設定とlocalThresholdMS の設定によって決められる
  • サーバ選択アルゴリズムは各クライアントで実装されている
  • secondary または secondaryPreferred モードを指定した場合
    • 最も低いレイテンシ + 15msec 以内のサーバを「使用可能」とする
    • 15msec はデフォルト値であり変更可能
    • 「使用可能」なサーバ群からランダムで接続先が決定される