Return-Path: X-Original-To: apmail-hadoop-mapreduce-issues-archive@minotaur.apache.org Delivered-To: apmail-hadoop-mapreduce-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id DAE1C999A for ; Fri, 21 Oct 2011 06:22:59 +0000 (UTC) Received: (qmail 17310 invoked by uid 500); 21 Oct 2011 06:22:59 -0000 Delivered-To: apmail-hadoop-mapreduce-issues-archive@hadoop.apache.org Received: (qmail 17274 invoked by uid 500); 21 Oct 2011 06:22:56 -0000 Mailing-List: contact mapreduce-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mapreduce-issues@hadoop.apache.org Delivered-To: mailing list mapreduce-issues@hadoop.apache.org Received: (qmail 17261 invoked by uid 99); 21 Oct 2011 06:22:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Oct 2011 06:22:54 +0000 X-ASF-Spam-Status: No, hits=-2000.5 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Oct 2011 06:22:52 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id AFB5630CC06 for ; Fri, 21 Oct 2011 06:20:33 +0000 (UTC) Date: Fri, 21 Oct 2011 06:20:33 +0000 (UTC) From: "Hudson (Commented) (JIRA)" To: mapreduce-issues@hadoop.apache.org Message-ID: <629041661.989.1319178033721.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1651846608.269.1309298848779.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (MAPREDUCE-2629) Class loading quirk prevents inner class method compilation MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/MAPREDUCE-2629?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13132357#comment-13132357 ] Hudson commented on MAPREDUCE-2629: ----------------------------------- Integrated in Hadoop-Common-0.23-Commit #34 (See [https://builds.apache.org/job/Hadoop-Common-0.23-Commit/34/]) MAPREDUCE-2629. Workaround a JVM class loading quirk which prevents JIT compilation of inner classes methods in ReduceContextImpl. Contributed by Eric Caspole. todd : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1187182 Files : * /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt * /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/task/ReduceContextImpl.java > Class loading quirk prevents inner class method compilation > ----------------------------------------------------------- > > Key: MAPREDUCE-2629 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-2629 > Project: Hadoop Map/Reduce > Issue Type: Improvement > Components: task > Affects Versions: 0.21.0, 0.22.0 > Reporter: Eric Caspole > Assignee: Eric Caspole > Priority: Minor > Fix For: 0.23.0 > > Attachments: MAPREDUCE-2629.patch, mr-2629.txt > > Original Estimate: 24h > Remaining Estimate: 24h > > While profiling jobs like terasort and gridmix, I noticed that a > method "org.apache.hadoop.mapreduce.task.ReduceContextImpl.access > $000" is near the top. It turns out that this is because the > ReduceContextImpl class has a member backupStore which is accessed > from an inner class ReduceContextImpl$ValueIterator. Due to the way > synthetic accessor methods work, every access of backupStore results > in a call to access$000 to the outer class. For some portion of the > run, backupStore is null and the BackupStore class has never been > loaded by the reducer. > Due to the way the Hotspot JVM inliner works, by default it will not > inline a short method where the class of of the return value object > is unloaded - if you use a debug JVM with -XX:+PrintCompilation you > will see a failure reason message like "unloaded signature classes." > This causes every call to ReduceContextImpl.access$000 to be executed > in the interpreter for the handful of bytecodes to return the null > backupStore. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira