Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-59384

Should provide ability to perform periodic DNS health checks

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.3.0
    • Affects Version/s: None
    • Component/s: None
    • Fully Compatible
    • v5.0
    • Sharding 2021-11-29, Sharding 2021-12-13, Sharding 2021-12-27, Sharding 2022-01-10, Sharding 2022-01-24, Sharding 2022-02-07
    • 178
    • 3

      • test if connection can be made to configured DNS servers
      • attempt to resolve an address

      We need to build a representative list of servers to test. This might be tricky of somehow we pick servers that actually do have incorrect DNS name, and we treat it as a fatal error. A simple solution:
      1. we build a list of servers discovered, this may include many shards and 3 config servers. Potentially, it could be hundreds of them
      2. when building the list, cap it at some number like 20, so we don't pull 1,000 servers for really large clusters
      3. shuffle the list randomly and pick the first 10 servers. Every time, the list of those 10 servers to resolve will be different, thus we avoid some unfortunate combination of servers that always fail

      Remember it's important to always cap the list of servers we resolve, we need to control the cost.

            kshitij.gupta@mongodb.com Kshitij Gupta
            lamont.nelson@mongodb.com Lamont Nelson
            0 Vote for this issue
            2 Start watching this issue