hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron T. Myers (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-4656) DN heartbeat loop can be briefly tight
Date Tue, 02 Apr 2013 02:11:15 GMT

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

Aaron T. Myers commented on HDFS-4656:

Thanks a lot for the review, Todd.

The test failure is unrelated and is already tracked by another JIRA. I'm going to commit
this momentarily.
> DN heartbeat loop can be briefly tight
> --------------------------------------
>                 Key: HDFS-4656
>                 URL: https://issues.apache.org/jira/browse/HDFS-4656
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 2.0.4-alpha
>            Reporter: Aaron T. Myers
>            Assignee: Aaron T. Myers
>            Priority: Minor
>         Attachments: HDFS-4656.patch
> The DN hearbeat loop looks roughly like this:
> {code}
> if (now - timeOfLastHeartbeat > configuredHeartbeatInterval) {
>   // do heartbeat
> }
> timeToWait = configuredHeartbeatInterval - (now - timeOfLastHeartbeat)
> sleep(timeToWait)
> {code}
> The trouble is that since we sleep for exactly the heartbeat interval, and then check
to see if we have waited _more_ than that heartbeat interval, we will very often have waited
exactly the heartbeat interval (in millis), and not more than it. In this case we will skip
actually performing the heartbeat and will calculcate timeToWait as being 0ms. The DN heartbeat
loop will then loop tightly for 1ms. The solution is just to change the "{{>}}" in the
code above to "{{>=}}".

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message