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

MisReplicationHandler does not consider QUASI_CLOSED replicas as sources

    XMLWordPrintableJSON

Details

    Description

      MisReplicationHandler#filterSources gets a Set of replicas that can be used to fix mis replication. It selects CLOSED replicas:

        private Set<ContainerReplica> filterSources(Set<ContainerReplica> replicas) {
          return replicas.stream().filter(r -> r
                          .getState() == StorageContainerDatanodeProtocolProtos
                          .ContainerReplicaProto.State.CLOSED)
                  .filter(r -> ReplicationManager
                          .getNodeStatus(r.getDatanodeDetails(), nodeManager)
                          .isHealthy())
                  .filter(r -> r.getDatanodeDetails().getPersistedOpState()
                          == HddsProtos.NodeOperationalState.IN_SERVICE)
                  .collect(Collectors.toSet());
        }
      

      When thinking about Ratis Containers, QUASI_CLOSED replicas can also be mis replicated. They're also allowed to be replicated to datanodes. Should they also be considered as sources here?

      Attachments

        Issue Links

          Activity

            People

              sodonnell Stephen O'Donnell
              siddhant Siddhant Sangwan
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: