You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Devaraj Das (JIRA)" <ji...@apache.org> on 2008/11/19 16:58:44 UTC

[jira] Created: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
----------------------------------------------------------------------------------------------------

                 Key: HADOOP-4683
                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
             Project: Hadoop Core
          Issue Type: Bug
          Components: mapred
            Reporter: Devaraj Das
             Fix For: 0.20.0


The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Devaraj Das (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655903#action_12655903 ] 

Devaraj Das commented on HADOOP-4683:
-------------------------------------

I propose this go to 0.18.3.

> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>         Attachments: hadoop-4683.patch
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Devaraj Das (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Devaraj Das updated HADOOP-4683:
--------------------------------

      Resolution: Fixed
    Hadoop Flags: [Reviewed]
          Status: Resolved  (was: Patch Available)

I just committed this. Thanks, Jothi!

> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>         Attachments: hadoop-4683.patch
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Jothi Padmanabhan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jothi Padmanabhan updated HADOOP-4683:
--------------------------------------

    Status: Patch Available  (was: Open)

> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>         Attachments: hadoop-4683.patch
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Jothi Padmanabhan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jothi Padmanabhan updated HADOOP-4683:
--------------------------------------

    Attachment: hadoop-4683.patch

Attaching a patch. 

A 100 node, 100 byte, 100K maps loadgen showed a 3x performance improvement (~800 seconds with patch, ~2500 seconds without the patch)
{noformat}
bin/hadoop jar hadoop-$BUILD-test.jar loadgen \
-D test.randomtextwrite.bytes_per_map=$((100)) \
-D test.randomtextwrite.total_bytes=$((100*100000)) \
-D mapred.compress.map.output=false \
-r 1 \
-outKey org.apache.hadoop.io.Text \
-outValue org.apache.hadoop.io.Text \
-outFormat org.apache.hadoop.mapred.lib.NullOutputFormat \
-outdir fakeout
{noformat}

Testpatch results:

     [exec] -1 overall.  
     [exec] 
     [exec]     +1 @author.  The patch does not contain any @author tags.
     [exec] 
     [exec]     -1 tests included.  The patch doesn't appear to include any new or modified tests.
     [exec]                         Please justify why no tests are needed for this patch.
     [exec] 
     [exec]     +1 javadoc.  The javadoc tool did not generate any warning messages.
     [exec] 
     [exec]     +1 javac.  The applied patch does not increase the total number of javac compiler warnings.
     [exec] 
     [exec]     +1 findbugs.  The patch does not introduce any new Findbugs warnings.
     [exec] 
     [exec]     +1 Eclipse classpath. The patch retains Eclipse classpath integrity.
     [exec] 


> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>         Attachments: hadoop-4683.patch
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Owen O'Malley (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655905#action_12655905 ] 

Owen O'Malley commented on HADOOP-4683:
---------------------------------------

I don't think this is a regression. I think we should apply this to trunk, but not 0.19 or 0.18.

> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>         Attachments: hadoop-4683.patch
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Jothi Padmanabhan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jothi Padmanabhan reassigned HADOOP-4683:
-----------------------------------------

    Assignee: Jothi Padmanabhan

> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Jothi Padmanabhan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12650475#action_12650475 ] 

Jothi Padmanabhan commented on HADOOP-4683:
-------------------------------------------

Discussed offline with Owen. While the sleep itself is one part of the problem, the more compelling case for having a separate thread would be the case where the JobTracker is slow and the shuffle scheduler is stuck because the actual call to getMapCompletionEvents is taking a long time to return.

> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HADOOP-4683) Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread

Posted by "Jothi Padmanabhan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HADOOP-4683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655908#action_12655908 ] 

Jothi Padmanabhan commented on HADOOP-4683:
-------------------------------------------

ant test and test-contrib passed on my local box

> Move the call to getMapCompletionEvents in ReduceTask.ReduceCopier.fetchOutputs to a separate thread
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-4683
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4683
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Devaraj Das
>            Assignee: Jothi Padmanabhan
>             Fix For: 0.20.0
>
>         Attachments: hadoop-4683.patch
>
>
> The method ReduceTask.ReduceCopier.fetchOutputs makes a call to getMapCompletionEvents every iteration of the loop. This should be moved out to a separate thread. This might slow down the shuffle scheduler in some cases since there is a sleep inside the getMapCompletionEvents method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.