[
https://issues.apache.org/jira/browse/HDFS-13359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16869141#comment-16869141
]
Wei-Chiu Chuang commented on HDFS-13359:
----------------------------------------
I would love to improve datanode lock contention, especially in the context of
dense DataNodes.
That said, it would be really nice to have a performance benchmark to compare
the performance before/after the change.
> 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: [email protected]
For additional commands, e-mail: [email protected]