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

Reply via email to