-
Type: Improvement
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Internal Code, Sharding
-
Fully Compatible
Currently, multiple threads trying to perform operations on a replica set can both trigger _check to be called, which sends isMaster and replSetGetStatus calls to the replica set to update which nodes are currently healthy. This can cause many more commands to be sent to the replSet members than is necessary as those multiple threads are performing redundant work. We should make sure that at any one time there is only one thread actively updating mongos' knowledge of the health of a replica set.
One way to accomplish this would be to make one system thread responsible for all the monitoring of the health of the set, as described in SERVER-5392, though other approaches may be possible.
- duplicates
-
SERVER-12284 ReplicaSetMonitor is broken
- Closed
- is related to
-
SERVER-6972 C++ driver should use isMaster, not replSetGetStatus, to monitor health of a replica set
- Closed
- related to
-
SERVER-5392 Consider allowing only one thread to be responsible in modifying _nodes in ReplicaSetMonitor
- Closed