You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2018/05/29 07:32:55 UTC

[2/2] flink git commit: [FLINK-9258][metrics] Thread-safe initialization of variables map

[FLINK-9258][metrics] Thread-safe initialization of variables map


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

Branch: refs/heads/release-1.5
Commit: 3cdba864e7c979125bb0460025f1a5bbe749cbaf
Parents: b57bf73
Author: zentol <ch...@apache.org>
Authored: Mon May 7 10:04:26 2018 +0200
Committer: zentol <ch...@apache.org>
Committed: Tue May 29 09:30:38 2018 +0200

----------------------------------------------------------------------
 .../metrics/groups/AbstractMetricGroup.java     |  9 ++++---
 .../metrics/groups/ComponentMetricGroup.java    | 26 --------------------
 2 files changed, 5 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/3cdba864/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/AbstractMetricGroup.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/AbstractMetricGroup.java b/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/AbstractMetricGroup.java
index 6d9c7d9..909915f 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/AbstractMetricGroup.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/AbstractMetricGroup.java
@@ -113,11 +113,12 @@ public abstract class AbstractMetricGroup<A extends AbstractMetricGroup<?>> impl
 		if (variables == null) { // avoid synchronization for common case
 			synchronized (this) {
 				if (variables == null) {
-					variables = new HashMap<>();
-					putVariables(variables);
-					if (parent != null) { // not true for Job-/TaskManagerMetricGroup and mocks
-						variables.putAll(parent.getAllVariables());
+					Map<String, String> tmpVariables = new HashMap<>();
+					putVariables(tmpVariables);
+					if (parent != null) { // not true for Job-/TaskManagerMetricGroup
+						tmpVariables.putAll(parent.getAllVariables());
 					}
+					variables = tmpVariables;
 				}
 			}
 		}

http://git-wip-us.apache.org/repos/asf/flink/blob/3cdba864/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/ComponentMetricGroup.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/ComponentMetricGroup.java b/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/ComponentMetricGroup.java
index 0cd9942..924adcb 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/ComponentMetricGroup.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/ComponentMetricGroup.java
@@ -21,9 +21,6 @@ package org.apache.flink.runtime.metrics.groups;
 import org.apache.flink.annotation.Internal;
 import org.apache.flink.runtime.metrics.MetricRegistry;
 
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * Abstract {@link org.apache.flink.metrics.MetricGroup} for system components (e.g.,
  * TaskManager, Job, Task, Operator).
@@ -52,29 +49,6 @@ public abstract class ComponentMetricGroup<P extends AbstractMetricGroup<?>> ext
 		super(registry, scope, parent);
 	}
 
-	@Override
-	public Map<String, String> getAllVariables() {
-		if (variables == null) { // avoid synchronization for common case
-			synchronized (this) {
-				if (variables == null) {
-					variables = new HashMap<>();
-					putVariables(variables);
-					if (parent != null) { // not true for Job-/TaskManagerMetricGroup
-						variables.putAll(parent.getAllVariables());
-					}
-				}
-			}
-		}
-		return variables;
-	}
-
-	/**
-	 * Enters all variables specific to this ComponentMetricGroup and their associated values into the map.
-	 *
-	 * @param variables map to enter variables and their values into
-     */
-	protected abstract void putVariables(Map<String, String> variables);
-
 	/**
 	 * Closes the component group by removing and closing all metrics and subgroups
 	 * (inherited from {@link AbstractMetricGroup}), plus closing and removing all dedicated