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] [Commented] (MAPREDUCE-5268) Improve history server startup performance
Date Fri, 31 May 2013 14:57:20 GMT

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

Jason Lowe commented on MAPREDUCE-5268:
---------------------------------------

Thanks for updating so quickly, Karthik.  Sorry, I should have been more clear on my nit with
the templates.  I was surprised to see such a generic type, both in name and template use,
for a specific, private use-case.  If the name is something so generic as ConcurrentSkipListMapWithSize
then I think it is appropriate to use templates with that name since the name implies it is
generic.  If we think the templates are overkill then I think it's better to name it more
specifically for its purpose, e.g.: JobHistoryInfoMap.

I do like the AtomicInteger change.  And as far as the size inconsistency concern, that's
already an issue because of the very nature of concurrency whether we synchronize the methods
or not.  As soon as we get/compute the size, it could be wrong as someone else comes in and
changes the map immediately afterwards. In this case the size is only being used to loosely
cap the size of the job cache, and it's not critical if we're a few jobs over or a few jobs
under that limit.

So I think we're really close.  I'd like to see either the ConcurrentSkipListMapWithSize name
changed to be more specific to its use case or keep the name and have the templates restored.
 I don't care too much either way.
                
> Improve history server startup performance
> ------------------------------------------
>
>                 Key: MAPREDUCE-5268
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5268
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: jobhistoryserver
>    Affects Versions: 0.23.7, 2.0.4-alpha
>            Reporter: Jason Lowe
>            Assignee: Karthik Kambatla
>         Attachments: mr-5268.patch, mr-5268.patch, mr-5268.patch, mr-5268-prelim.patch
>
>
> The history server can easily take many minutes to startup when there are a significant
number of jobs to scan in the done directory.  However the scanning of files is not the bottleneck,
rather it's the heavy use of ConcurrentSkipListMap.size in HistoryFileManager.  
> ConcurrentSkipListMap.size is a very expensive operation, especially on maps with many
entries, as it has to scan every entry to compute the size.  We should avoid calling this
method or at least minimize its use.

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