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

Wei-Chiu Chuang commented on HDFS-13359:
----------------------------------------

Hi [~linyiqun] thanks for the patch!

Could you shed a little more light on why changing from an object lock to a 
ReentrantLock improves locking? Is it because it is a fair lock?

Thank you

> DataXceiver hung due to the lock in FsDatasetImpl#getBlockInputStream
> ---------------------------------------------------------------------
>
>                 Key: HDFS-13359
>                 URL: https://issues.apache.org/jira/browse/HDFS-13359
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 2.7.1
>            Reporter: Yiqun Lin
>            Assignee: Yiqun Lin
>            Priority: Major
>         Attachments: HDFS-13359.001.patch, stack.jpg
>
>
> DataXceiver hung due to the lock that locked by 
>  {{FsDatasetImpl#getBlockInputStream}} (have attached stack).
> {code:java}
>   @Override // FsDatasetSpi
>   public InputStream getBlockInputStream(ExtendedBlock b,
>       long seekOffset) throws IOException {
>     ReplicaInfo info;
>     synchronized(this) {
>       info = volumeMap.get(b.getBlockPoolId(), b.getLocalBlock());
>     }
>     ...
>   }
> {code}
> The lock {{synchronized(this)}} used here is expensive, there is already one 
> {{AutoCloseableLock}} type lock defined for {{ReplicaMap}}. We can use it 
> instead.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to