You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2018/01/26 11:20:28 UTC

[02/33] kylin git commit: KYLIN-2836 Fix timers counters and meters add synchronization impl

KYLIN-2836 Fix timers counters and meters add synchronization impl

This closes #75

Signed-off-by: Li Yang <li...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b4daa8a3
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b4daa8a3
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b4daa8a3

Branch: refs/heads/sync
Commit: b4daa8a3198a99400629c79db9832070bbe063d0
Parents: 4196ddd
Author: mingming.ge <mi...@kyligence>
Authored: Mon Sep 25 17:01:51 2017 +0800
Committer: Li Yang <li...@apache.org>
Committed: Fri Jan 26 17:22:46 2018 +0800

----------------------------------------------------------------------
 .../metrics/metrics2/CodahaleMetrics.java       | 24 +++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b4daa8a3/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java b/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java
index bae6cfb..e728759 100644
--- a/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java
+++ b/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java
@@ -144,9 +144,27 @@ public class CodahaleMetrics implements Metrics {
         for (Map.Entry<String, Metric> metric : metricRegistry.getMetrics().entrySet()) {
             metricRegistry.remove(metric.getKey());
         }
-        timers.invalidateAll();
-        counters.invalidateAll();
-        meters.invalidateAll();
+
+        try {
+            timersLock.lock();
+            timers.invalidateAll();
+        } finally {
+            timersLock.unlock();
+        }
+
+        try {
+            countersLock.lock();
+            counters.invalidateAll();
+        } finally {
+            countersLock.unlock();
+        }
+
+        try {
+            metersLock.lock();
+            meters.invalidateAll();
+        } finally {
+            metersLock.unlock();
+        }
     }
 
     @Override