[ 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