Skip to content

HDDS-14927. Add Quasi-Closed Container Tracking in Recon.#10198

Draft
ArafatKhan2198 wants to merge 1 commit intoapache:masterfrom
ArafatKhan2198:HDDS-14927-new
Draft

HDDS-14927. Add Quasi-Closed Container Tracking in Recon.#10198
ArafatKhan2198 wants to merge 1 commit intoapache:masterfrom
ArafatKhan2198:HDDS-14927-new

Conversation

@ArafatKhan2198
Copy link
Copy Markdown
Contributor

@ArafatKhan2198 ArafatKhan2198 commented May 6, 2026

What changes were proposed in this pull request?

Please describe your PR in detail: What changes are proposed in the PR? and Why? This PR introduces a new feature in Apache Ozone Recon to track and display containers that are in the QUASI_CLOSED lifecycle state.

A container enters the QUASI_CLOSED state when it is locally closed by a DataNode (often due to a pipeline failure or interruption) but SCM has not yet finalized it as CLOSED due to a lack of quorum. While these containers may not always trigger existing unhealthy replication alerts (like missing or under-replicated), they are critical for debugging because a container stuck in QUASI_CLOSED for an extended period indicates a stalled pipeline finalization or lifecycle issue.

Previously, Recon only tracked replication health issues. This PR adds a dedicated, in-memory tracking path for QUASI_CLOSED containers, separating lifecycle state tracking from replication health tracking.

Approach used to solve the issue: To ensure minimal overhead and avoid unnecessary database writes, this feature is implemented entirely in-memory without introducing new Derby DB tables or background persistence tasks:

  1. Backend API (ContainerEndpoint.java): Added a new GET /api/v1/containers/quasiClosed endpoint. This endpoint utilizes cursor-based pagination and fetches QUASI_CLOSED containers directly from the in-memory ReconContainerManager (ContainerStateMap), which is an efficient O(limit) lookup.
  2. DTO (QuasiClosedContainersResponse.java): Created a lightweight response object that maps the in-memory ContainerInfo to UnhealthyContainerMetadata, allowing seamless integration with the existing frontend components.
  3. Frontend UI: Integrated a new "Quasi Closed" tab into the existing Unhealthy Containers page. It reuses the existing ContainerTable component, adds the quasi-closed count to the Highlights card, and overrides the column title to display "State Enter Time".

What is the link to the Apache JIRA

How was this patch tested?

@devmadhuu devmadhuu self-requested a review May 7, 2026 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant