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