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 8D98A200B16 for ; Mon, 20 Jun 2016 23:27:59 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 8C485160A65; Mon, 20 Jun 2016 21:27:59 +0000 (UTC) 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 D18C0160A26 for ; Mon, 20 Jun 2016 23:27:58 +0200 (CEST) Received: (qmail 86855 invoked by uid 500); 20 Jun 2016 21:27:58 -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 86837 invoked by uid 99); 20 Jun 2016 21:27:58 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 20 Jun 2016 21:27:57 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id DA8B52C1F60 for ; Mon, 20 Jun 2016 21:27:57 +0000 (UTC) Date: Mon, 20 Jun 2016 21:27:57 +0000 (UTC) From: "Enis Soztutar (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-7612) [JDK8] Replace use of high-scale-lib counters with intrinsic facilities MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 20 Jun 2016 21:27:59 -0000 [ https://issues.apache.org/jira/browse/HBASE-7612?page=3Dcom.atlassian= .jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D1534= 0438#comment-15340438 ]=20 Enis Soztutar commented on HBASE-7612: -------------------------------------- Now that HBase-2.0 is JDK-8 only, we can revisit this. I've done a basic te= st, and LongAdder is faster than our forked Counter implementation from my = micro-benchmark:=20 threads=3D1 {code} Benchmark Mode Cnt Score = Error Units CountersBenchmark.testIncrementAtomicLong thrpt 200 92234852.622 =C2=B1 = 162115.932 ops/s CountersBenchmark.testIncrementCounter thrpt 200 59320305.701 =C2=B1 = 482597.475 ops/s CountersBenchmark.testIncrementLongAdder thrpt 200 74932942.690 =C2=B1 = 87463.568 ops/s {code} threads=3D8 {code} Benchmark Mode Cnt Score = Error Units CountersBenchmark.testIncrementAtomicLong thrpt 200 34087507.496 =C2=B1= 666013.635 ops/s CountersBenchmark.testIncrementCounter thrpt 200 452497965.994 =C2=B1= 7419222.873 ops/s CountersBenchmark.testIncrementLongAdder thrpt 200 564211175.749 =C2=B1= 2306961.876 ops/s {code} threads=3Dmax (24) {code} # Detecting actual CPU count: 24 detected Benchmark Mode Cnt Score = Error Units CountersBenchmark.testIncrementAtomicLong thrpt 200 35218226.606 =C2= =B1 998791.734 ops/s CountersBenchmark.testIncrementCounter thrpt 200 653494810.370 =C2= =B1 48383212.204 ops/s CountersBenchmark.testIncrementLongAdder thrpt 200 1169425248.335 =C2= =B1 4128542.456 ops/s {code} This is with jdk1.8.0_71 and 24 virtual cores.=20 Counter is one of the classes used in histogram metrics, which shows up pre= tty hot in the workloadc profiles. cc [~saint.ack@gmail.com], [~eclark].=20 > [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, Long= Accumulator, LongAdder) that "internally employ contention-reduction techni= ques that provide huge throughput improvements as compared to Atomic variab= les". There are applications of these where we are currently using Cliff Cl= ick'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)