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

ASF GitHub Bot updated HDDS-16220:
----------------------------------
    Labels: pull-request-available  (was: )

> bound per-transaction bucket-write-lock hold in 
> DirectoryDeletingService/KeyDeletingService 
> --------------------------------------------------------------------------------------------
>
>                 Key: HDDS-16220
>                 URL: https://issues.apache.org/jira/browse/HDDS-16220
>             Project: Apache Ozone
>          Issue Type: Improvement
>          Components: Ozone Manager
>            Reporter: Andrey Yarovoy
>            Assignee: Andrey Yarovoy
>            Priority: Major
>              Labels: pull-request-available
>
> {{DirectoryDeletingService}} submits an entire deletion run as one 
> {{PurgeDirectoriesRequest}} 
> ({{{}DirectoryDeletingService#submitPurgePaths{}}} → 
> {{{}addAllDeletedPath{}}}), and the apply handler 
> {{OMDirectoriesPurgeRequestWithFSO#validateAndUpdateCache}} acquires write 
> locks on all buckets in the batch up front and holds them across the entire 
> path × sub-dir × sub-file loop. The batch is bounded only by a byte budget 
> ({{{}ratisByteLimit = 0.9 × ozone.om.ratis.log.appender.queue.byte-limit{}}}, 
> default 32 MB → ~28.8 MB), and a single densely-populated directory can fill 
> that budget by itself.
>  
> The lock hold on the apply thread is proportional to the size of a single 
> purge transaction, and that size is effectively unbounded for a directory 
> with a very large number of direct children. There is no cap on the number of 
> entries applied under one lock acquisition.



--
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