You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tez.apache.org by "Siddharth Seth (JIRA)" <ji...@apache.org> on 2014/04/11 01:19:14 UTC

[jira] [Commented] (TEZ-1036) Shuffle deduping should be global and not local to the MapHost

    [ https://issues.apache.org/jira/browse/TEZ-1036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13965981#comment-13965981 ] 

Siddharth Seth commented on TEZ-1036:
-------------------------------------

This can be a temporary fix in the running task - but eventually needs to be fixed in the AM - TEZ-924.

> Shuffle deduping should be global and not local to the MapHost
> --------------------------------------------------------------
>
>                 Key: TEZ-1036
>                 URL: https://issues.apache.org/jira/browse/TEZ-1036
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Bikas Saha
>              Labels: newbie++
>
> The following logic needs to be across all fetchers and not within a maphost.
> {code}
> List<InputAttemptIdentifier> origList = host.getAndClearKnownMaps();
>     Map<Integer, InputAttemptIdentifier> dedupedList = new LinkedHashMap<Integer, InputAttemptIdentifier>();
>     Iterator<InputAttemptIdentifier> listItr = origList.iterator();
>     while (listItr.hasNext()) {
>       // we may want to try all versions of the input but with current retry
>       // behavior older ones are likely to be lost and should be ignored.
>       // This may be removed after TEZ-914
>       InputAttemptIdentifier id = listItr.next();
>       if (inputShouldBeConsumed(id)) {
>         Integer inputNumber = new Integer(id.getInputIdentifier().getInputIndex());
>         InputAttemptIdentifier oldId = dedupedList.get(inputNumber);
>         if (oldId == null || oldId.getAttemptNumber() < id.getAttemptNumber()) {
>           dedupedList.put(inputNumber, id);
>           if (oldId != null) {
>             LOG.warn("Old Src for InputIndex: " + inputNumber + " with attemptNumber: "
>                 + oldId.getAttemptNumber()
>                 + " was not determined to be invalid. Ignoring it for now in favour of "
>                 + id.getAttemptNumber());
>           }
>         }
>       } else {
>         LOG.info("Ignoring finished or obsolete source: " + id);
>       }
>     }{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)