You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ga...@apache.org on 2016/10/11 21:37:31 UTC
hbase git commit: HBASE-16146 Remove thread local usage in Counter
Repository: hbase
Updated Branches:
refs/heads/master fef3c908d -> 7b0acc292
HBASE-16146 Remove thread local usage in Counter
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7b0acc29
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7b0acc29
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7b0acc29
Branch: refs/heads/master
Commit: 7b0acc292e1854b09c6cedc4dae1f6dae07779bf
Parents: fef3c90
Author: Gary Helmling <ga...@apache.org>
Authored: Wed Sep 21 17:43:41 2016 -0700
Committer: Gary Helmling <ga...@apache.org>
Committed: Tue Oct 11 14:29:56 2016 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/util/Counter.java | 21 +-------------------
1 file changed, 1 insertion(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/7b0acc29/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java
index d4cfe26e..0d3a5c6 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Counter.java
@@ -110,25 +110,12 @@ public class Counter {
return h;
}
- private static class IndexHolder {
- int index = hash();
- }
-
- private final ThreadLocal<IndexHolder> indexHolderThreadLocal =
- new ThreadLocal<IndexHolder>() {
- @Override
- protected IndexHolder initialValue() {
- return new IndexHolder();
- }
- };
-
public void add(long delta) {
Container container = containerRef.get();
Cell[] cells = container.cells;
int mask = cells.length - 1;
- IndexHolder indexHolder = indexHolderThreadLocal.get();
- int baseIndex = indexHolder.index;
+ int baseIndex = hash();
if(cells[baseIndex & mask].add(delta)) {
return;
}
@@ -141,8 +128,6 @@ public class Counter {
index++;
}
- indexHolder.index = index;
-
if(index - baseIndex >= cells.length &&
cells.length < MAX_CELLS_LENGTH &&
container.demoted.compareAndSet(false, true)) {
@@ -183,10 +168,6 @@ public class Counter {
return sum;
}
- public void destroy() {
- indexHolderThreadLocal.remove();
- }
-
@Override
public String toString() {
Cell[] cells = containerRef.get().cells;