Motivation:
In a replication conflict situation, when one of the replicas in the replicaset has problems in the upstream in box.info.replication, this replica has data different from the master. However, vshard.router will consider it active and healthy, and route requests to it. For some customers who care about maximizing read consistency, this behavior seems unacceptable, and they want to eliminate the chance of reading data from conflicting replicas.
Suggestion:
I would like to be able to use some custom health checks of replicas in vshard (may be activated via some setting). Specifically in this case, I would like to monitor replication errors in box.info.replication so that the router does not send requests there in case of errors. Probably, replication errors are not the only case when I would like to exclude replicas from the pool of available ones, but this is the only example I have.
Motivation: In a replication conflict situation, when one of the replicas in the replicaset has problems in the upstream in box.info.replication, this replica has data different from the master. However, vshard.router will consider it active and healthy, and route requests to it. For some customers who care about maximizing read consistency, this behavior seems unacceptable, and they want to eliminate the chance of reading data from conflicting replicas.
Suggestion: I would like to be able to use some custom health checks of replicas in vshard (may be activated via some setting). Specifically in this case, I would like to monitor replication errors in box.info.replication so that the router does not send requests there in case of errors. Probably, replication errors are not the only case when I would like to exclude replicas from the pool of available ones, but this is the only example I have.