[ 
https://issues.apache.org/jira/browse/HDDS-9596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17781508#comment-17781508
 ] 

Ethan Rose commented on HDDS-9596:
----------------------------------

In your example, the lagging replica would not be in a closed state. It would 
be quasi-closed since it would have a lesser BCSID than the highest reported of 
the two containers SCM saw. Even though the container is closed, SCM will not 
close this replica. For this case, the {{allMatch}} check on the replica states 
would prevent deletion. I still think its a good idea to double check this 
logic in general though.

> Determine the criteria for calling a container empty in the SCM
> ---------------------------------------------------------------
>
>                 Key: HDDS-9596
>                 URL: https://issues.apache.org/jira/browse/HDDS-9596
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: SCM
>            Reporter: Siddhant Sangwan
>            Priority: Major
>
> This is the current apache master logic for identifying an empty container:
> {code}
>   private boolean isContainerEmptyAndClosed(final ContainerInfo container,
>       final Set<ContainerReplica> replicas) {
>     return container.getState() == HddsProtos.LifeCycleState.CLOSED &&
>         !replicas.isEmpty() &&
>         replicas.stream().allMatch(
>             r -> r.getState() == ContainerReplicaProto.State.CLOSED &&
>                 r.isEmpty());
>   }
> {code}
> What happens if: For an open container, a write is successful in 2 replicas, 
> but not in the 3rd one. Now the pipeline is broken and closed and this 
> container moves to quasi closed. The replicas are also quasi closed. It has 
> two replicas on unique origins, so then the container is closed. At this 
> stage, the quasi closed replicas go down and we’re only left with the 3rd 
> empty replica. Won’t we be wrong in marking this container as empty now?



--
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