diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-16 18:30:04 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-16 18:30:04 +0100 |
commit | 1a042c3c8c74c9a445bba5cd0366b55ce480f9b0 (patch) | |
tree | 52e7ea7feac9f4e107330034062d489d4418b29e /metrics-proxy | |
parent | 64f178a21c1db6a75bf3b5a738e54d06314a97d7 (diff) |
Use hashing that will actually differentiate properly
Diffstat (limited to 'metrics-proxy')
-rw-r--r-- | metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java index eb01e969b53..cdb87e76148 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java @@ -7,9 +7,11 @@ import ai.vespa.metricsproxy.metric.model.MetricId; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.databind.ObjectMapper; +import com.yahoo.compress.Hasher; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.time.Instant; import java.util.ArrayList; import java.util.HashMap; @@ -164,14 +166,12 @@ public class MetricsParser { } static long dimensionsHashCode(List<Dimension> dimensions) { - int keyHash = 0; - int valueHash = 0; + long hash = 0; for (Dimension dim : dimensions) { - keyHash += dim.id.hashCode(); - valueHash += dim.value.hashCode(); + hash += Hasher.xxh3(dim.id.getBytes(StandardCharsets.UTF_8)) ^ Hasher.xxh3(dim.value.getBytes(StandardCharsets.UTF_8)); } - return (((long) keyHash) << 32) | (valueHash & 0xffffffffL); + return hash; } record Dimension(String id, String value) { |