From b7b2aa5de57a6433f3f861bcaefe467d64784d1b Mon Sep 17 00:00:00 2001 From: Jacek Lewandowski Date: Wed, 15 Nov 2023 12:05:06 +0100 Subject: [PATCH] Fix DiskSpaceMetricsTest.testFlushSize Patch by Jacek Lewandowski; reviewed by Branimir Lambov for CASSANDRA-18710 --- .../cassandra/io/DiskSpaceMetricsTest.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/test/unit/org/apache/cassandra/io/DiskSpaceMetricsTest.java b/test/unit/org/apache/cassandra/io/DiskSpaceMetricsTest.java index e2f49e9696..63b8e5b99c 100644 --- a/test/unit/org/apache/cassandra/io/DiskSpaceMetricsTest.java +++ b/test/unit/org/apache/cassandra/io/DiskSpaceMetricsTest.java @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; @@ -44,7 +45,9 @@ import org.apache.cassandra.io.sstable.indexsummary.IndexSummaryRedistribution; import org.apache.cassandra.io.sstable.indexsummary.IndexSummarySupport; import org.apache.cassandra.metrics.StorageMetrics; import org.apache.cassandra.schema.TableId; +import org.apache.cassandra.utils.ExpMovingAverage; import org.apache.cassandra.utils.FBUtilities; +import org.apache.cassandra.utils.MovingAverage; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; @@ -109,15 +112,13 @@ public class DiskSpaceMetricsTest extends CQLTester for (int i = 0; i < 3; i++) insertN(KEYSPACE_PER_TEST, cfs, 1000, 55); - cfs.forceBlockingFlush(ColumnFamilyStore.FlushReason.UNIT_TESTS); - int totalSize = 0; - final Set liveSSTables = cfs.getLiveSSTables(); + final List liveSSTables = cfs.getLiveSSTables().stream() + .sorted(SSTableReader.idComparator) + .collect(Collectors.toList()); + MovingAverage expectedMetrics = ExpMovingAverage.decayBy1000(); for (SSTableReader rdr : liveSSTables) - { - totalSize += rdr.onDiskLength(); - } - final int avgSize = totalSize / liveSSTables.size(); - assertEquals(avgSize, cfs.metric.flushSizeOnDisk.get(), 0.05 * avgSize); + expectedMetrics.update(rdr.onDiskLength()); + assertThat(cfs.metric.flushSizeOnDisk.get()).isEqualTo(expectedMetrics.get()); } private void insert(ColumnFamilyStore cfs, long value) throws Throwable