Aaron T. Myers created HDFS-4656:
------------------------------------
Summary: 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
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