[jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities

2017-09-07 Thread Yechao Chen (JIRA)

[ 
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

2016-12-01 Thread Hiroshi Ikeda (JIRA)

[ 
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

2016-12-01 Thread stack (JIRA)

[ 
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

2016-09-19 Thread Hiroshi Ikeda (JIRA)

[ 
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

2016-09-19 Thread stack (JIRA)

[ 
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

2016-09-19 Thread Hudson (JIRA)

[ 
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

2016-09-18 Thread Duo Zhang (JIRA)

[ 
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

2016-09-18 Thread Enis Soztutar (JIRA)

[ 
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

2016-09-18 Thread Duo Zhang (JIRA)

[ 
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

2016-09-18 Thread Enis Soztutar (JIRA)

[ 
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

2016-09-18 Thread Hadoop QA (JIRA)

[ 
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

2016-09-18 Thread Duo Zhang (JIRA)

[ 
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

2016-09-18 Thread Hadoop QA (JIRA)

[ 
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

2016-09-17 Thread Duo Zhang (JIRA)

[ 
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

2016-06-20 Thread Enis Soztutar (JIRA)

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