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