Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
None
-
None
-
None
-
None
Description
When SCM provides a read pipeline to a client, it simply returns a pipeline containing all replicas it knows about. The state of a replica is not included in the pipeline, so the client cannot distinguish between healthy and unhealthy replicas. However the pipeline nodes are sorted, so that if there are multiple replicas for a given replica index, and some of those nodes are not IN_SERVICE (eg decommissioning etc), then the IN_SERVICE nodes are always sorted first.
On SCM we should be able to do something similar to put UNHEALTHY replicas to the back of the list, so the client will try to read healthy ones first.
It is also worth checking what the client does when it encounters an unhealthy replica - will it fall back to reconstruction read, or if there is a spare index will it use it first?