[ 
https://issues.apache.org/jira/browse/HDFS-14657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16893228#comment-16893228
 ] 

Konstantin Shvachko edited comment on HDFS-14657 at 7/26/19 12:29 AM:
----------------------------------------------------------------------

Hi [~zhangchen].
Looking at your patch v2. I am not sure I understand how your approach can 
work. Suppose you release {{namesystem.writeUnlock()}} in 
{{reportDiffSorted()}}, then somebody (unrelated to block report processing) 
can modify blocks belonging to the storage, which invalidates 
{{storageBlocksIterator}}, meaning calling {{next()}} will cause 
{{ConcurrentModificationException}}.


was (Author: shv):
Hi [~zhangchen].
Looking at your patch v2. I am not sure I understand how your approach can 
work. Suppose you release {{namesystem.writeUnlock()}} in 
{{reportDiffSorted()}}, then somebody (unrelated to block report processing) 
can modify blocks belonging to the storage, which will invalidates 
{{storageBlocksIterator}}, meaning calling {{next()}} will cause 
{{ConcurrentModificationException}}.

> Refine NameSystem lock usage during processing FBR
> --------------------------------------------------
>
>                 Key: HDFS-14657
>                 URL: https://issues.apache.org/jira/browse/HDFS-14657
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Chen Zhang
>            Assignee: Chen Zhang
>            Priority: Major
>         Attachments: HDFS-14657-001.patch, HDFS-14657.002.patch
>
>
> The disk with 12TB capacity is very normal today, which means the FBR size is 
> much larger than before, Namenode holds the NameSystemLock during processing 
> block report for each storage, which might take quite a long time.
> On our production environment, processing large FBR usually cause a longer 
> RPC queue time, which impacts client latency, so we did some simple work on 
> refining the lock usage, which improved the p99 latency significantly.
> In our solution, BlockManager release the NameSystem write lock and request 
> it again for every 5000 blocks(by default) during processing FBR, with the 
> fair lock, all the RPC request can be processed before BlockManager 
> re-acquire the write lock.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

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

Reply via email to