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