Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 0DF05200AE8 for ; Tue, 3 May 2016 12:27:16 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 0CC451609F4; Tue, 3 May 2016 12:27:16 +0200 (CEST) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id A92251609F3 for ; Tue, 3 May 2016 12:27:14 +0200 (CEST) Received: (qmail 51629 invoked by uid 500); 3 May 2016 10:27:13 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 51269 invoked by uid 99); 3 May 2016 10:27:13 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 May 2016 10:27:13 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 06BD22C1F5D for ; Tue, 3 May 2016 10:27:13 +0000 (UTC) Date: Tue, 3 May 2016 10:27:13 +0000 (UTC) From: "Hadoop QA (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-15742) Reduce allocation of objects in metrics MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 03 May 2016 10:27:16 -0000 [ https://issues.apache.org/jira/browse/HBASE-15742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15268486#comment-15268486 ] Hadoop QA commented on HBASE-15742: ----------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s {color} | {color:green} Patch does not have any anti-patterns. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s {color} | {color:green} The patch does not contain any @author tags. {color} | | {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s {color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 7m 23s {color} | {color:green} branch-1.1 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 20s {color} | {color:green} branch-1.1 passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 11s {color} | {color:green} branch-1.1 passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 19s {color} | {color:green} branch-1.1 passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 29s {color} | {color:green} branch-1.1 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 29s {color} | {color:green} branch-1.1 passed {color} | | {color:red}-1{color} | {color:red} javadoc {color} | {color:red} 0m 33s {color} | {color:red} hbase-hadoop2-compat in branch-1.1 failed with JDK v1.8.0. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 11s {color} | {color:green} branch-1.1 passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 19s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 23s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 23s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 13s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 13s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 7s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 9s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 4m 21s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.1 2.5.2 2.6.0. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 45s {color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} javadoc {color} | {color:red} 0m 20s {color} | {color:red} hbase-hadoop2-compat in the patch failed with JDK v1.8.0. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 10s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 20s {color} | {color:green} hbase-hadoop2-compat in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 9s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 17m 44s {color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12801921/HBASE-15742-branch-1.1-v1.patch | | JIRA Issue | HBASE-15742 | | Optional Tests | asflicense javac javadoc unit findbugs hadoopcheck hbaseanti checkstyle compile | | uname | Linux asf901.gq1.ygridcore.net 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/test_framework/yetus-0.2.1/lib/precommit/personality/hbase.sh | | git revision | branch-1.1 / f87a30b | | Default Java | 1.7.0_79 | | Multi-JDK versions | /home/jenkins/tools/java/jdk1.8.0:1.8.0 /usr/local/jenkins/java/jdk1.7.0_79:1.7.0_79 | | findbugs | v3.0.0 | | javadoc | https://builds.apache.org/job/PreCommit-HBASE-Build/1728/artifact/patchprocess/branch-javadoc-hbase-hadoop2-compat-jdk1.8.0.txt | | javadoc | https://builds.apache.org/job/PreCommit-HBASE-Build/1728/artifact/patchprocess/patch-javadoc-hbase-hadoop2-compat-jdk1.8.0.txt | | Test Results | https://builds.apache.org/job/PreCommit-HBASE-Build/1728/testReport/ | | modules | C: hbase-hadoop2-compat U: hbase-hadoop2-compat | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/1728/console | | Powered by | Apache Yetus 0.2.1 http://yetus.apache.org | This message was automatically generated. > Reduce allocation of objects in metrics > --------------------------------------- > > Key: HBASE-15742 > URL: https://issues.apache.org/jira/browse/HBASE-15742 > Project: HBase > Issue Type: Bug > Affects Versions: 1.3.0, 1.2.1, 1.0.3, 1.1.4, 0.98.19 > Reporter: Phil Yang > Assignee: Phil Yang > Fix For: 2.0.0, 1.3.0, 1.4.0, 1.2.2, 0.98.20 > > Attachments: HBASE-15742-branch-1-v1.patch, HBASE-15742-branch-1.1-v1.patch, HBASE-15742-branch-1.2-v1.patch, HBASE-15742-branch-1.2-v2.patch, HBASE-15742-v1.patch, HBASE-15742-v2.patch, HBASE-15742-v3.patch, HBASE-15742-v4.patch > > > We use JMX and o.a.h.metrics2 to do some metrics on regions, tables, region servers and cluster. We use MetricsInfo to show the information of metrics, and we use Interns to cache MetricsInfo objects because it won't be changed. > However, in Interns there are some static values to limit the max cached objects. We can only cache 2010 metrics, but we have dozens of metrics for one region and we have some RS-level metrics in each RS and all metrics for all regions will be saved in master. So each server will have thousands of metrics, and we can not cache most of them. When we collect metrics by JMX, we will create many objects which can be avoid. It increases the pressure of GC and JMX has some caching logic so the objects can not be removed immediately which increases the pressure more. > Interns is in Hadoop project, and I think the implementation is not suitable for HBase. Because we can not know how many MetricsInfo we have, it depends on the number of regions. And we can not set it unlimited because we should remove the objects whose region is split, moved, or dropped. I think we can use Guava's cache with expireAfterAccess which is very simple and convenient. > So we can add a new Interns class in HBase project first, and put it to upstream later. > Moreover, in MutableHistogram#snapshot we create same Strings each time, we can create them only in the first time. -- This message was sent by Atlassian JIRA (v6.3.4#6332)