[
https://issues.apache.org/jira/browse/HADOOP-3524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12603814#action_12603814
]
Amar Kamat commented on HADOOP-3524:
------------------------------------
One simple approach would be to have a thread (a _timer_) that wakes up every x
seconds and updates a _time_ variable. We can now use this _time_ instead of
calling {{System.currentTimeMillis()}}.
x = 1 seems fine to me (i.e the time if stale/off by 1 sec). Thoughts?.
Comments?
> JobTracker's processHeartbeat() should not call System.currentTimeMillis()
> everytime
> ------------------------------------------------------------------------------------
>
> Key: HADOOP-3524
> URL: https://issues.apache.org/jira/browse/HADOOP-3524
> Project: Hadoop Core
> Issue Type: Improvement
> Components: mapred
> Reporter: Amar Kamat
>
> Consider the following
> {code:title=JobTracker.java|borderStyle=solid}
> private synchronized boolean processHeartbeat(
> TaskTrackerStatus
> trackerStatus, boolean initialContact) {
> String trackerName = trackerStatus.getTrackerName();
> trackerStatus.setLastSeen(System.currentTimeMillis());
> {code}
> Here, the call to {{System.currentTimeMillis()}} on every call to
> {{JobTracker.processHeartbeat()}} might prove costly. While
> testing/benchmarking HADOOP-2119, we recorded that the JobTracker was able to
> serve ~130 tasks/sec. So that means we might make ~130 calls to
> {{System.currentTimeMillis()}} per second. I think in these cases
> (_last-seen-status_ etc) such a high level of accuracy in terms of timestamp
> is unnecessary and hence can be avoided.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.