Skip to content

HDDS-15839. Implement SCM container ID export manager#10813

Open
sarvekshayr wants to merge 5 commits into
apache:masterfrom
sarvekshayr:export-tool-4
Open

HDDS-15839. Implement SCM container ID export manager#10813
sarvekshayr wants to merge 5 commits into
apache:masterfrom
sarvekshayr:export-tool-4

Conversation

@sarvekshayr

@sarvekshayr sarvekshayr commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Adds the SCM leader-side container ID export worker. Jobs paginate through ContainerManager.getContainerIDs() with lifecycle/health filters, write sharded text files, and pack them into a TAR.

ContainerExportLimits.java - Shared page/shard defaults and caps
ContainerExportStatus.java - Job status snapshot (State, filters, row count, TAR path, error)
ContainerExportManager.java - Async export worker: submit, paginate, shard, TAR append, job tracking
ContainerExportMetrics.java - Export job counters and last-success gauges
TestContainerExportManager.java - Unit tests with mocked ContainerManager

Part 3 of 5 in splitting HDDS-15496 #10673 container ID export.

What is the link to the Apache JIRA

HDDS-15839

How was this patch tested?

Added a new unit test class TestContainerExportManager (no RPC or CLI yet).
CI: https://github.com/sarvekshayr/ozone/actions/runs/29718653670

@devmadhuu devmadhuu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @sarvekshayr for the patch. Largely the PR looks good, just few minor comments.

@szetszwo szetszwo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sarvekshayr , thanks for splitting this out. Some general comments

  • Refactor out all the File/Directory related code to a new class ExportFileManager
  • Describe directory layout in ExportFileManager (very important since changing it is an incompatible change)
  • Except for ContainerExportManager, use "Export" instead of "ContainerExport" as the prefix for the classnames

See also the comments inlined.

@szetszwo

Copy link
Copy Markdown
Contributor
  • Refactor out all the File/Directory related code to a new class ExportFileManager
  • Describe directory layout in ExportFileManager (very important since changing it is an incompatible change)

@sarvekshayr , indeed, this PR is also quite big. Let's work on ExportFileManager and directory layout in a separated JIRA.

@sarvekshayr

Copy link
Copy Markdown
Contributor Author
  • Refactor out all the File/Directory related code to a new class ExportFileManager
  • Describe directory layout in ExportFileManager (very important since changing it is an incompatible change)

@sarvekshayr , indeed, this PR is also quite big. Let's work on ExportFileManager and directory layout in a separated JIRA.

Created HDDS-15935.

@devmadhuu devmadhuu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @sarvekshayr for improving the patch. Largely LGTM +1. Just a nit for rare case. Pls check.

@sarvekshayr
sarvekshayr marked this pull request as ready for review July 22, 2026 17:06
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.

3 participants