Stephen O'Donnell created HDDS-7919:
---------------------------------------

             Summary: EC: ECPipelineProvider.createForRead should filter out 
dead replicas and sort replicas
                 Key: HDDS-7919
                 URL: https://issues.apache.org/jira/browse/HDDS-7919
             Project: Apache Ozone
          Issue Type: Sub-task
          Components: SCM
            Reporter: Stephen O'Donnell


ECPipelineProvider.createForRead() is used to get a pipeline to read an EC 
block group.

When there are nodes in maintenance, it is possible for there to be replica 
details in SCM for dead maintenance nodes, and they should not be returned to 
the client as they cannot be read.

Additionally, it is possible for there to be multiple copies for a given 
replica index. Eg an IN_SERVICE replica and a DECOMMISSIONED or 
DECOMMISSIONING. As things stand, there is no order applied to the replicas, 
but the client reading code will tend to use the first replica it loads from 
the pipeline.

Therefore we should exclude dead replicas, and then ensure that where there are 
multiple copies for a given replica index, HEALTHY (rather than STALE) are 
sorted first, and then sort by the SERVICE_STATE, putting IN_SERVICE before 
MAINTENANCE etc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to