RS partial node upgrade : URI impact

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 ?

Hi @MBO and welcome to the MongoDB Community forum!!

As per my understanding from the scenario, I would recommend you looking at the documentation on Maintenance of Replica set to understand how the performance is maintained on the replica sets.

However, in addition to above, could you help me with some more details on the replica set configuration like:

  1. the output for rs.conf()
  2. The reason for the partial hardware upgrade (e.g. Is the PRIMARY resourced higher than the SECONDARY’s and you just wish to match them all?).