Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-6462 Phase II : Erasure Coding Offline Recovery & Read/Write Improvements
  3. HDDS-7919

EC: ECPipelineProvider.createForRead should filter out dead replicas and sort replicas

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Implemented
    • None
    • 1.4.0
    • SCM

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              adoroszlai Attila Doroszlai
              sodonnell Stephen O'Donnell
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: