You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Siyao Meng (Jira)" <ji...@apache.org> on 2026/10/18 01:21:00 UTC

[jira] [Updated] (HDDS-17101) Keep QUASI_CLOSED replicas of a CLOSED container on their origin datanode

     [ https://issues.apache.org/jira/browse/HDDS-17101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Siyao Meng updated HDDS-17101:
------------------------------
    Status: Patch Available  (was: Open)

> Keep QUASI_CLOSED replicas of a CLOSED container on their origin datanode
> -------------------------------------------------------------------------
>
>                 Key: HDDS-17101
>                 URL: https://issues.apache.org/jira/browse/HDDS-17101
>             Project: Apache Ozone
>          Issue Type: Improvement
>          Components: SCM
>            Reporter: Siyao Meng
>            Assignee: Siyao Meng
>            Priority: Major
>              Labels: pull-request-available
>
> When a QUASI_CLOSED Ratis container is force closed, its sequence ID is the highest one reported by any replica. After that, ReplicationManager counts every QUASI_CLOSED replica with a different sequence ID as unhealthy and deletes it once the container has enough CLOSED replicas. So which replicas survive depends on the report of a single replica. Origin IDs cannot tell the replicas apart either, because a copy made by replication reports the origin of the replica it was copied from. Separately, the container report handler still raises the sequence ID of a CLOSED container when a replica reports a higher one (it only logs an error).
> This change:
> * Keeps a QUASI_CLOSED replica of a CLOSED container while it is on its origin datanode, whatever its sequence ID. ReplicationManager does not select it for deletion and leaves it out of the replica counts, the placement check and the health state, so it does not cause healthy replicas to be removed or added and the container stays HEALTHY. Its datanode is excluded as a target for new replicas. An empty kept replica does not stop an empty container from being deleted. Copies on other datanodes are handled as before.
> * Stops the container report handler from raising the sequence ID of a CLOSED container.
> *Compatibility*
> * No protocol, layout or configuration change.
> * After a force close, replicas that lag behind stay on their origin datanodes instead of being deleted, so such a container can keep up to two extra replicas until it is deleted.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org