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

Ivan Andika updated HDDS-9098:
------------------------------
    Description: 
Currently OpenKeyCleanupService deletes all the open keys in the openKeyTable 
regardless whether the open keys are MPU-related or not. This might cause 
orphan MPU in MultipartInfoTable, since to abort the MultipartInfo, we need to 
check openKeyTable for MPU-related open keys, which will fail if the open keys 
are already deleted. 

We need to exclude the MPU-related open keys in OpenKeyCleanupService. There 
are few considerations:
 # HDDS-9017 set the isMultipartKey in these MPU-related open keys, and we can 
use this flag to exclude these keys from deletion
 # For existing MPU-related keys prior to HDDS-9017, we can exploit the unique 
characteristics of the MPU-related open keys:
 ## Open MPU-related open keys' DB keys have certain patterns
 ### Open MPU Key Info (dbKey = /\{vol}/\{bucket}/\{key}{*}/\{uploadId}{*}) 
where uploadId = "UUID.randomUUID().toString() + "-" + UniqueId.next()"
 ### Open MPU Part Key Info (dbKey =  
/\{vol}/\{bucket}/\{key}{*}/\{clientId}{*}) where clientId = UniqueId#next 
(This is also the pattern of normal MPU keys have, but we might not need since 
S3 abort request do not check against the existence of this key)
 ## Open MPU-related open keys do not store any block information (unlike the 
normal non-MPU open keys)
 ### We can add this check on top of the previous check

 

> Exclude MPU-related open keys in OpenKeyCleanupService
> ------------------------------------------------------
>
>                 Key: HDDS-9098
>                 URL: https://issues.apache.org/jira/browse/HDDS-9098
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Ivan Andika
>            Assignee: Ivan Andika
>            Priority: Major
>
> Currently OpenKeyCleanupService deletes all the open keys in the openKeyTable 
> regardless whether the open keys are MPU-related or not. This might cause 
> orphan MPU in MultipartInfoTable, since to abort the MultipartInfo, we need 
> to check openKeyTable for MPU-related open keys, which will fail if the open 
> keys are already deleted. 
> We need to exclude the MPU-related open keys in OpenKeyCleanupService. There 
> are few considerations:
>  # HDDS-9017 set the isMultipartKey in these MPU-related open keys, and we 
> can use this flag to exclude these keys from deletion
>  # For existing MPU-related keys prior to HDDS-9017, we can exploit the 
> unique characteristics of the MPU-related open keys:
>  ## Open MPU-related open keys' DB keys have certain patterns
>  ### Open MPU Key Info (dbKey = /\{vol}/\{bucket}/\{key}{*}/\{uploadId}{*}) 
> where uploadId = "UUID.randomUUID().toString() + "-" + UniqueId.next()"
>  ### Open MPU Part Key Info (dbKey =  
> /\{vol}/\{bucket}/\{key}{*}/\{clientId}{*}) where clientId = UniqueId#next 
> (This is also the pattern of normal MPU keys have, but we might not need 
> since S3 abort request do not check against the existence of this key)
>  ## Open MPU-related open keys do not store any block information (unlike the 
> normal non-MPU open keys)
>  ### We can add this check on top of the previous check
>  



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

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

Reply via email to