hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Lowe (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MAPREDUCE-4822) Unnecessary conversions in History Events
Date Tue, 05 Feb 2013 16:40:11 GMT

     [ https://issues.apache.org/jira/browse/MAPREDUCE-4822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jason Lowe updated MAPREDUCE-4822:
----------------------------------

    Status: Open  (was: Patch Available)

Hi Chu, thanks for picking this up.

The original intent of the JIRA was to fix more than just the one example occurrence that
Bobby pointed out.  Looking through the source, I can see more occurrences of unnecessary
conversions in MapAttemptFinishedEvent and TaskFinishedEvent.

There's a number of other event classes, like TaskStartedEvent, that are converting back and
forth between strings and enums since they store their internal state in a single {{datum}}
Avro record.  We can refactor these to build the datum on-demand like TaskAttemptFinishedEvent
does, but that's probably best left to another JIRA.  We can keep this one short and simple.
                
> Unnecessary conversions in History Events
> -----------------------------------------
>
>                 Key: MAPREDUCE-4822
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4822
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: jobhistoryserver
>    Affects Versions: 0.23.4
>            Reporter: Robert Joseph Evans
>            Assignee: Chu Tong
>            Priority: Trivial
>              Labels: patch
>             Fix For: 0.24.0
>
>         Attachments: MAPREDUCE-4822.patch
>
>
> There are a number of conversions in the Job History Event classes that are totally unnecessary.
 It appears that they were originally used to convert from the internal avro format, but now
many of them do not pull the values from the avro they store them internally.
> For example:
> {code:title=TaskAttemptFinishedEvent.java}
>   /** Get the task type */
>   public TaskType getTaskType() {
>     return TaskType.valueOf(taskType.toString());
>   }
> {code}
> The code currently is taking an enum, converting it to a string and then asking the same
enum to convert it back to an enum.  If java work properly this should be a noop and a reference
to the original taskType should be returned.
> There are several places that a string is having toString called on it, and since strings
are immutable it returns a reference to itself.
> The various ids are not immutable and probably should not be changed at this point.

--
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

Mime
View raw message