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

Yi Liu commented on HDFS-6784:
------------------------------

Hi Colin
{quote}
This patch adds a place where we hold the CRM lock and try to acquire the FSN 
lock, which could lead to deadlock.
{quote}

It's false, the patch is we hold the FSN lock (rescan method will do this, 
right?), and then try to get CRM lock to set {{needsRescan}}, so it will *not* 
lead to deadlock. (Actually I have considered this)

> Avoid rescan twice in HDFS CacheReplicationMonitor for one FS Op if it calls 
> setNeedsRescan multiple times.
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-6784
>                 URL: https://issues.apache.org/jira/browse/HDFS-6784
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: caching
>    Affects Versions: 3.0.0
>            Reporter: Yi Liu
>            Assignee: Yi Liu
>         Attachments: HDFS-6784.001.patch
>
>
> In HDFS CacheReplicationMonitor,  rescan is expensive. Sometimes, 
> {{setNeedsRescan}} is called multiple times, for example, in 
> FSNamesystem#modifyCacheDirective, there are 3 times. In monitor thread of 
> CacheReplicationMonitor, if it checks {{needsRescan}} is true, rescan will 
> happen, but {{needsRescan}} is set to false before real scan. Meanwhile, the 
> 2nd or 3rd time {{setNeedsResacn}} may set {{needsRescan}} to true. So after 
> the scan finish, in next loop, a new rescan will be triggered, that's not 
> necessary at all and inefficient for rescan twice. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to