diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-09-08 23:03:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-08 23:03:47 +0200 |
commit | bcb1928cbc642fb7bb01d47a571b83854c2421c6 (patch) | |
tree | a1654153a245ee0ddb54e962c521d27908af15ea /metrics-proxy | |
parent | 65889863b8cd7124e45a1983f7f226ad4a663ebc (diff) | |
parent | c6bf62e759ed7a40aecfcd94c142def8878e815a (diff) |
Merge pull request #19029 from vespa-engine/balder/use-metricid-dictionary
Use a dictionary for metrid ids. There are few unique ones (less than…
Diffstat (limited to 'metrics-proxy')
-rw-r--r-- | metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java index dcee4100f98..148b838c3c2 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java @@ -1,6 +1,9 @@ // Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package ai.vespa.metricsproxy.metric.model; +import com.yahoo.yolean.concurrent.CopyOnWriteHashMap; + +import java.util.Map; import java.util.Objects; /** @@ -8,11 +11,14 @@ import java.util.Objects; */ public class MetricId { + private static final Map<String, MetricId> dictionary = new CopyOnWriteHashMap<>(); public static final MetricId empty = toMetricId(""); public final String id; private MetricId(String id) { this.id = id; } - public static MetricId toMetricId(String id) { return new MetricId(id); } + public static MetricId toMetricId(String id) { + return dictionary.computeIfAbsent(id, key -> new MetricId(key)); + } @Override public boolean equals(Object o) { |