[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16156778#comment-16156778 ] Yechao Chen commented on HBASE-7612: I will submit a patch later > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612.patch, HBASE-7612-v1.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15713609#comment-15713609 ] Hiroshi Ikeda commented on HBASE-7612: -- Sorry I have been busy and not created a patch. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15712999#comment-15712999 ] stack commented on HBASE-7612: -- You have a patch [~ikeda]? Put it up in a new issue? Thanks sir. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15505346#comment-15505346 ] Hiroshi Ikeda commented on HBASE-7612: -- Instead of reset, using another AtomicLonger to keep the last sum and calculating the difference will help you to avoid dropping increments. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15503865#comment-15503865 ] stack commented on HBASE-7612: -- Skimmed. Looks good. Counting is largest consumer of CPU so any improvements here appreciated. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15503244#comment-15503244 ] Hudson commented on HBASE-7612: --- SUCCESS: Integrated in Jenkins build HBase-Trunk_matrix #1633 (See [https://builds.apache.org/job/HBase-Trunk_matrix/1633/]) HBASE-7612 [JDK8] Replace use of high-scale-lib counters with intrinsic (zhangduo: rev 6eb6225456f13cce3ab641007737b9ffb0193f24) * (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestBlocksRead.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java * (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java * (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableFastCounter.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java * (edit) hbase-common/src/main/java/org/apache/hadoop/hbase/util/FastLongHistogram.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java * (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilterListOrOperatorWithBlkCnt.java * (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheStats.java * (edit) hbase-common/src/main/java/org/apache/hadoop/hbase/trace/SpanReceiverHost.java * (edit) hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCacheStats.java * (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableHistogram.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15502352#comment-15502352 ] Duo Zhang commented on HBASE-7612: -- OK, let me commit. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15502255#comment-15502255 ] Enis Soztutar commented on HBASE-7612: -- bq. I think the original implementation will also miss some updates so it is not very critical? And seems it is only used in testcase. Ok that will work. +1 for commit. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15501898#comment-15501898 ] Duo Zhang commented on HBASE-7612: -- I added the Deprecated annotation to Counter. We could remove it in the next major release I think? And for sumThenReset, the only place is {code:title=HFile.java} /** * Number of checksum verification failures. It also * clears the counter. */ public static final long getChecksumFailuresCount() { return CHECKSUM_FAILURES.sumThenReset(); } {code} And the original code is {code:title=HFile.java} /** * Number of checksum verification failures. It also * clears the counter. */ public static final long getChecksumFailuresCount() { long count = CHECKSUM_FAILURES.get(); CHECKSUM_FAILURES.set(0); return count; } {code} I think the original implementation will also miss some updates so it is not very critical? And seems it is only used in testcase. Thanks. [~enis] > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15501809#comment-15501809 ] Enis Soztutar commented on HBASE-7612: -- According to javadoc, {{sum()}} is not guaranteed to see an atomic snapshot. I think it is fine for most of our usage though. However, one case is sumThenReset(): {code} * Equivalent in effect to {@link #sum} followed by {@link * #reset}. This method may apply for example during quiescent * points between multithreaded computations. If there are * updates concurrent with this method, the returned value is * not guaranteed to be the final value occurring before * the reset. * * @return the sum */ public long sumThenReset() { {code} In some places in the patch, we are using sumThenReset() which means we maybe dropping some increments. Are these usages correct? Not sure why Counter is a declared public interface. Seems like an oversight. We can optionally replace the Counter internals to be a thin-layer on top of AtomicAdder if we are gonna keep the Counter class for BC. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612-v1.patch, HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15500747#comment-15500747 ] Hadoop QA commented on HBASE-7612: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 42s {color} | {color:blue} Docker mode activated. {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:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s {color} | {color:green} The patch appears to include 3 new or modified test files. {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 36s {color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 4m 53s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 13s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 5s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 38s {color} | {color:green} master passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 35s {color} | {color:red} hbase-common in master has 1 extant Findbugs warnings. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 21s {color} | {color:red} hbase-hadoop2-compat in master has 1 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 4s {color} | {color:green} master passed {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 10s {color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 28s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 9s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 9s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 1s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 35s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 30m 25s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:green}+1{color} | {color:green} hbaseprotoc {color} | {color:green} 0m 37s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 43s {color} | {color:green} hbase-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 28s {color} | {color:green} hbase-hadoop2-compat generated 0 new + 0 unchanged - 1 fixed = 0 total (was 1) {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 53s {color} | {color:green} hbase-server in the patch passed. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 58s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 50s {color} | {color:green} hbase-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 22s {color} | {color:green} hbase-hadoop2-compat in the patch passed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 116m 26s {color} | {color:red} hbase-server in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 56s {color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 173m 12s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hbase.master.procedure.TestMasterFailoverWithProcedures | | | hadoop.hbase.regionserver.throttle.TestFlushWithThroughputController | | Timed out junit tests | org.apache.hadoop.hbase.security.access.TestAccessController2 | | | org.apache.hadoop.hbase.security.access.TestAccessControlFilter | | |
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15500463#comment-15500463 ] Duo Zhang commented on HBASE-7612: -- The failed test can not be reproduced locally and there is no log so I do not know what is the cause... And the findbugs warning is strange, it says that there is a null check at line 182 of EncodedDataBlock.java but there is no null check there... > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task > Components: metrics >Affects Versions: 2.0.0 >Reporter: Andrew Purtell >Assignee: Duo Zhang >Priority: Trivial > Fix For: 2.0.0 > > Attachments: HBASE-7612.patch > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15500379#comment-15500379 ] Hadoop QA commented on HBASE-7612: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 18s {color} | {color:blue} Docker mode activated. {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:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s {color} | {color:green} The patch appears to include 3 new or modified test files. {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 15s {color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 47s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 58s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 58s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 32s {color} | {color:green} master passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 31s {color} | {color:red} hbase-common in master has 1 extant Findbugs warnings. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 21s {color} | {color:red} hbase-hadoop2-compat in master has 1 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 53s {color} | {color:green} master passed {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s {color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 11s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 1s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 1s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 58s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 32s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 29m 40s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:green}+1{color} | {color:green} hbaseprotoc {color} | {color:green} 0m 31s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 54s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 0s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 52s {color} | {color:green} hbase-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 21s {color} | {color:green} hbase-hadoop2-compat in the patch passed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 84m 2s {color} | {color:red} hbase-server in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 37s {color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 136m 0s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hbase.master.procedure.TestDispatchMergingRegionsProcedure | | Timed out junit tests | org.apache.hadoop.hbase.client.TestFromClientSide | | | org.apache.hadoop.hbase.client.TestRestoreSnapshotFromClientWithRegionReplicas | | | org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient | | | org.apache.hadoop.hbase.client.TestMobSnapshotCloneIndependence | \\ \\ || Subsystem || Report/Notes || | Docker | Client=1.11.2 Server=1.11.2 Image:yetus/hbase:7bda515 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12829086/HBASE-7612.patch | | JIRA Issue | HBASE-7612 | | Optional Tests | asflicense javac javadoc unit findbugs hadoopcheck hbaseanti checkstyle compile | | uname |
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15500125#comment-15500125 ] Duo Zhang commented on HBASE-7612: -- Bad news, our {{Counter}} is declared as {{InterfaceAudience.Public}}... And also it is used everywhere so I think we'd better do the replacement by class otherwise the patch will be very very big... Thanks. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task >Reporter: Andrew Purtell >Priority: Trivial > Fix For: 2.0.0 > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities
[ https://issues.apache.org/jira/browse/HBASE-7612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15340438#comment-15340438 ] Enis Soztutar commented on HBASE-7612: -- Now that HBase-2.0 is JDK-8 only, we can revisit this. I've done a basic test, and LongAdder is faster than our forked Counter implementation from my micro-benchmark: threads=1 {code} Benchmark Mode Cnt Score Error Units CountersBenchmark.testIncrementAtomicLong thrpt 200 92234852.622 ± 162115.932 ops/s CountersBenchmark.testIncrementCounter thrpt 200 59320305.701 ± 482597.475 ops/s CountersBenchmark.testIncrementLongAdder thrpt 200 74932942.690 ± 87463.568 ops/s {code} threads=8 {code} Benchmark Mode Cnt Score Error Units CountersBenchmark.testIncrementAtomicLong thrpt 200 34087507.496 ± 666013.635 ops/s CountersBenchmark.testIncrementCounter thrpt 200 452497965.994 ± 7419222.873 ops/s CountersBenchmark.testIncrementLongAdder thrpt 200 564211175.749 ± 2306961.876 ops/s {code} threads=max (24) {code} # Detecting actual CPU count: 24 detected Benchmark Mode Cnt Score Error Units CountersBenchmark.testIncrementAtomicLong thrpt 20035218226.606 ± 998791.734 ops/s CountersBenchmark.testIncrementCounter thrpt 200 653494810.370 ± 48383212.204 ops/s CountersBenchmark.testIncrementLongAdder thrpt 200 1169425248.335 ± 4128542.456 ops/s {code} This is with jdk1.8.0_71 and 24 virtual cores. Counter is one of the classes used in histogram metrics, which shows up pretty hot in the workloadc profiles. cc [~saint@gmail.com], [~eclark]. > [JDK8] Replace use of high-scale-lib counters with intrinsic facilities > --- > > Key: HBASE-7612 > URL: https://issues.apache.org/jira/browse/HBASE-7612 > Project: HBase > Issue Type: Sub-task >Reporter: Andrew Purtell >Priority: Trivial > Fix For: 2.0.0 > > > JEP155 introduces a few new classes (DoubleAccumulator, DoubleAdder, > LongAccumulator, LongAdder) that "internally employ contention-reduction > techniques that provide huge throughput improvements as compared to Atomic > variables". There are applications of these where we are currently using > Cliff Click's high-scale-lib and for metrics. > See http://openjdk.java.net/jeps/155 -- This message was sent by Atlassian JIRA (v6.3.4#6332)