ivandika3 opened a new pull request, #5325:
URL: https://github.com/apache/ozone/pull/5325

   ## What changes were proposed in this pull request?
   
   Cleanup service to clean up expired MPUs that are not successfully completed 
/ aborted.
   Some notable information:
   
   - The code structure is similar to the implementation of the 
OpenKeyCleanupService.
   - The Request/Response is similar to the 
S3MultipartUploadAbortRequest/Response, but unlike normal abort, the request 
will not fail if the MPU open key does not exist in the openKeyTable (e.g 
previously deleted in the previous openKeyCleanupService)
   - The MPU cleanup service has 
`ozone.om.open.mpu.parts.cleanup.limit.per.task `which limit the maximum number 
of MPU parts to delete rounded up to the nearest MPU (to prevent issues where 
MPUs that have parts more than `ozone.om.open.mpu.parts.cleanup.limit.per.task` 
never going to be deleted).
   - For each run, `Map<OmBucketInfo, List<OmMultipartAbortInfo>>` is created 
which contains the batch information to abort the expired MPUs, grouped by 
bucket for more efficient locking.
   - Logic regarding multipart abort response is refactored to 
`AbstractS3MultipartAbortResponse` to accomodate the batched approach of the 
cleanup service.
     - Since `OmMultipartAbortInfo` contains bucket layout information to 
handle cases that MPUs belongs to multiple buckets with different layout, 
`AbstractS3MultipartAbortResponse` and the subclasses will get the bucket 
layout from `OmMultipartAbortInfo#getBucketLayout` instead of 
`OmKeyResponse#getBucketLayout`
   - We will skip MPU cleanup if the underlying bucket does not exist
      - HDDS-9318 will enforce that bucket cannot be deleted before all the 
MPUs under the bucket are completed/aborted/cleaned up
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-9194
   
   ## How was this patch tested?
   
   Unit tests.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to