HDDS-15835. Count incomplete MPU parts in quota repair - #10795
Conversation
chungen0126
left a comment
There was a problem hiding this comment.
Thanks @chihsuan for working on this. I noticed that recalculateUsages includes a batching design. Would it be possible to extend this approach for recalculateMultipartUsages as well?
Good point! I initially followed the single-threaded pattern used by the deletedTable scans, assuming that |
|
While working on the batching change, I found two pre-existing bugs in the scan pipeline.
I filed HDDS-15997 to fix them first in a separate PR, since the MPU scan makes them easier to hit. Putting this PR on hold until HDDS-15997 is merged, then I'll rebase it to keep only the MPU counting. |
|
This PR has been marked as stale due to 21 days of inactivity. Please comment or remove the stale label to keep it open. Otherwise, it will be automatically closed in 7 days. |
|
Waiting for #10884 to be merged as per #10795 (comment) |
What changes were proposed in this pull request?
This change updates
QuotaRepairTaskto include committed parts from incomplete multipart uploads when rebuilding the bucket usedBytes.Previously, quota repair omitted these parts. A subsequent multipart upload abort released their replicated size, which could cause usedBytes to become negative. The repair task now scans the
multipartInfoTablefrom its checkpoint. It calculates legacy MPU parts using the same replicated-size calculation as abort and usesOMMultipartUploadUtilsfor split-part MPUs. It adds onlyusedBytes; MPU parts do not consumeusedNamespace.The change also adds OBS and FSO coverage for legacy and split-parts MPU entries, part replacement, namespace accounting, and aborting after repair.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-15835
How was this patch tested?
mvn -pl :ozone-manager test -Dtest=TestQuotaRepairTask -DskipShade -DskipRecon -DskipDocs./hadoop-ozone/dev-support/checks/checkstyle.shGenerated-by: Codex (GPT-5)