From 782bd0a9efb739228c8a505e3fec9ba561949fd8 Mon Sep 17 00:00:00 2001 From: Ruslan Altynnikov Date: Tue, 19 Oct 2021 12:10:03 +0200 Subject: [PATCH] Refactor tDigest() method to be a thread-safe one. --- .../com/spotify/metrics/core/SemanticMetricDistribution.java | 4 ++-- .../spotify/metrics/core/SemanticMetricDistributionTest.java | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/spotify/metrics/core/SemanticMetricDistribution.java b/core/src/main/java/com/spotify/metrics/core/SemanticMetricDistribution.java index c45f453..2177940 100644 --- a/core/src/main/java/com/spotify/metrics/core/SemanticMetricDistribution.java +++ b/core/src/main/java/com/spotify/metrics/core/SemanticMetricDistribution.java @@ -80,8 +80,8 @@ public long getCount() { } @VisibleForTesting - TDigest tDigest() { - return distRef.get(); + synchronized int getDigestHashCode() { + return distRef.get().hashCode(); } private TDigest create() { diff --git a/core/src/test/java/com/spotify/metrics/core/SemanticMetricDistributionTest.java b/core/src/test/java/com/spotify/metrics/core/SemanticMetricDistributionTest.java index ee7c685..24e404c 100644 --- a/core/src/test/java/com/spotify/metrics/core/SemanticMetricDistributionTest.java +++ b/core/src/test/java/com/spotify/metrics/core/SemanticMetricDistributionTest.java @@ -1,6 +1,5 @@ package com.spotify.metrics.core; -import com.tdunning.math.stats.TDigest; import org.junit.Before; import org.junit.Test; @@ -33,11 +32,11 @@ public void testRecord(){ @Test public void testGetValueAndFlush(){ Arrays.stream(period1Data).forEach(t->distribution.record(t)); - TDigest periode1tDigest = distribution.tDigest(); + int periode1tDigest = distribution.getDigestHashCode(); distribution.getValueAndFlush(); Arrays.stream(period1Data).forEach(t->distribution.record(t) ); assertEquals(period1Data.length, distribution.getCount()); - TDigest periode2Digest = distribution.tDigest(); + int periode2Digest = distribution.getDigestHashCode(); assertNotEquals(periode1tDigest,periode2Digest); }