|
Even I noticed that few days back. But I thought With
Actually the list of task statuses will be pretty small so either we can do what is currently done or maintain a boolean flag as Owen mentioned, +1.
As suggested by Devaraj, the time can be calculated in JobInProgress.findNewTask() and use this value in TaskInProgress.hasSpeculative(). The chances of ignoring a TIP for speculation that should be speculated will be extremely low as compared to using the time in TaskInProgress.recomputeProgress().
+1 this is the clear solution Please do move the runSpeculative check up. I think the boolean for the commit pending would be pretty easy. If we can avoid calling .values(), we will avoid creating a second collection for each tip. Another point is that some of our customers run with the max task failures set to 100, so it is not free to scan the tasks in a tip. This patch does the easy part of the improvement. I really should benchmark it before it goes in. It moves the check for speculative execution much earlier, and it does 1 get time of day.
Before the patch, findNewTask took 60s, with the patch it took 53s in my test case using Yourkit.
-1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12375694/2790.patch against trunk revision 619744. @author +1. The patch does not contain any @author tags. tests included -1. The patch doesn't appear to include any new or modified tests. patch -1. The patch command could not apply the patch. Console output: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/1871/console This message is automatically generated. Resolved conflict with 1985.
-1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12376796/2790-2.patch against trunk revision 619744. @author +1. The patch does not contain any @author tags. tests included -1. The patch doesn't appear to include any new or modified tests. javadoc +1. The javadoc tool did not generate any warning messages. javac +1. The applied patch does not generate any new javac compiler warnings. release audit +1. The applied patch does not generate any new release audit warnings. findbugs +1. The patch does not introduce any new Findbugs warnings. core tests +1. The patch passed core unit tests. contrib tests +1. The patch passed contrib unit tests. Test results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/1875/testReport/ This message is automatically generated. Owen, could you please submit one patch for 0.16 branch. This patch doesn't apply cleanly there.
Integrated in Hadoop-trunk #416 (See http://hudson.zones.apache.org/hudson/job/Hadoop-trunk/416/
Devaraj, the original patch would have worked for 0.16, but for now l decided to just put it in trunk.
Integrated in Hadoop-trunk #417 (See http://hudson.zones.apache.org/hudson/job/Hadoop-trunk/417/
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This problem may well be one of the reasons for hadoop-2119.
Also, another obvious optimization is to check whether the speculative
execution flag is true up front.