[
https://issues.apache.org/jira/browse/HDFS-7704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14301835#comment-14301835
]
Charles Lamb commented on HDFS-7704:
------------------------------------
Hi [~shahrs87],
I don't understand why you create the BPServiceActorAction class with subtypes
(ErrorReportAction and ReportBadBlockAction) and then not do a method dispatch
on the class. Instead you're using an enum and case to do the dispatch. This
seems rather un-OO-like, no?
Other nits:
BPOfferService.java:
{code}
ErrorReportAction errorReportAction = new ErrorReportAction
(BPServiceActorAction.ActionEnum.TRYSENDERRORREPORT,errCode, errMsg);
{code}
Needs a space before "errCode".
BPServiceActor.java:
s/synchronized(/synchronized (/
s/switch(/switch (/
ErrorReportAction.java:
s/BPServiceActorAction{/BPServiceActorAction {/
ReportBadBlockAction.java:
s/BPServiceActorAction{/BPServiceActorAction {/
Charles
> DN heartbeat to Active NN may be blocked and expire if connection to Standby
> NN continues to time out.
> -------------------------------------------------------------------------------------------------------
>
> Key: HDFS-7704
> URL: https://issues.apache.org/jira/browse/HDFS-7704
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: datanode, namenode
> Affects Versions: 2.5.0
> Reporter: Rushabh S Shah
> Assignee: Rushabh S Shah
> Attachments: HDFS-7704-v2.patch, HDFS-7704.patch
>
>
> There are couple of synchronous calls in BPOfferservice (i.e reportBadBlocks
> and trySendErrorReport) which will wait for both of the actor threads to
> process this calls.
> This calls are made with writeLock acquired.
> When reportBadBlocks() is blocked at the RPC layer due to unreachable NN,
> subsequent heartbeat response processing has to wait for the write lock. It
> eventually gets through, but takes too long and it blocks the next heartbeat.
> In our HA cluster setup, the standby namenode was taking a long time to
> process the request.
> Requesting improvement in datanode to make the above calls asynchronous since
> these reports don't have any specific
> deadlines, so extra few seconds of delay should be acceptable.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)