we have a RS with a given number of nodes, and multiple production applications querying it through proper connection strings.
Let’s say I want to physically change only a couple of them (HW upgrade).
My idea was to add the nodes, change the URI strings to accomodate the target topology, and then remove the nodes that are not addressed by any URI anymore.
I can add the new nodes, replicate config and initial set of data and then rs.reconfig() my RS. My RS will run on all nodes at this time. These nodes will already be reachable from the RS and the applications.
But , at this specific point, which can last some time, the applications will now lack these new nodes in their URI. I can set the priority to 0 in order for the new nodes to never become primary, because I can think that the driver will crash if their current connection string has no primary.
What is the real impact (as long as these new servers never get promoted to PRIMARY) ? Is there any possibility of a driver failing because the RS string doesn’t match all of the current RS members ?
Would you handle that differently ?