From 1447ec2104706c5f5073b9416980a47ff737881f Mon Sep 17 00:00:00 2001 From: David Phillips Date: Wed, 12 Oct 2022 15:29:33 -0700 Subject: [PATCH 1/2] Remove outdated SPI revapi exclusions --- core/trino-spi/pom.xml | 92 +----------------------------------------- 1 file changed, 1 insertion(+), 91 deletions(-) diff --git a/core/trino-spi/pom.xml b/core/trino-spi/pom.xml index c8e127e11725..382538cce6d6 100644 --- a/core/trino-spi/pom.xml +++ b/core/trino-spi/pom.xml @@ -180,97 +180,7 @@ - - - java.method.removed - method io.trino.spi.type.TypeSignature io.trino.spi.type.VarcharType::getParametrizedVarcharSignature(java.lang.String) - - - true - java.annotation.removed - parameter void io.trino.spi.statistics.ColumnStatisticMetadata::<init>(===java.lang.String===, io.trino.spi.statistics.ColumnStatisticType) - parameter void io.trino.spi.statistics.ColumnStatisticMetadata::<init>(===java.lang.String===, io.trino.spi.statistics.ColumnStatisticType) - @com.fasterxml.jackson.annotation.JsonProperty("columnName") - - - true - java.annotation.removed - parameter void io.trino.spi.statistics.ColumnStatisticMetadata::<init>(java.lang.String, ===io.trino.spi.statistics.ColumnStatisticType===) - parameter void io.trino.spi.statistics.ColumnStatisticMetadata::<init>(java.lang.String, ===io.trino.spi.statistics.ColumnStatisticType===) - @com.fasterxml.jackson.annotation.JsonProperty("statisticType") - - - true - java.annotation.removed - method void io.trino.spi.statistics.ColumnStatisticMetadata::<init>(java.lang.String, io.trino.spi.statistics.ColumnStatisticType) - method void io.trino.spi.statistics.ColumnStatisticMetadata::<init>(java.lang.String, io.trino.spi.statistics.ColumnStatisticType) - @com.fasterxml.jackson.annotation.JsonCreator - - - true - java.annotation.removed - method io.trino.spi.statistics.ColumnStatisticType io.trino.spi.statistics.ColumnStatisticMetadata::getStatisticType() - method io.trino.spi.statistics.ColumnStatisticType io.trino.spi.statistics.ColumnStatisticMetadata::getStatisticType() - @com.fasterxml.jackson.annotation.JsonProperty - - - java.method.visibilityReduced - method void io.trino.spi.block.DictionaryBlock::<init>(int, int, io.trino.spi.block.Block, int[], boolean, boolean, io.trino.spi.block.DictionaryId) - method void io.trino.spi.block.DictionaryBlock::<init>(int, int, io.trino.spi.block.Block, int[], boolean, boolean, io.trino.spi.block.DictionaryId) - public - private - - - true - java.method.visibilityReduced - method void io.trino.spi.block.DictionaryBlock::<init>(io.trino.spi.block.Block, int[]) - method void io.trino.spi.block.DictionaryBlock::<init>(int, int, io.trino.spi.block.Block, int[]) - public - package - - - java.method.removed - method void io.trino.spi.block.DictionaryBlock::<init>(int, io.trino.spi.block.Block, int[]) - - - java.method.removed - method void io.trino.spi.block.DictionaryBlock::<init>(int, io.trino.spi.block.Block, int[], boolean) - - - java.method.removed - method void io.trino.spi.block.DictionaryBlock::<init>(int, io.trino.spi.block.Block, int[], boolean, io.trino.spi.block.DictionaryId) - - - java.method.removed - method void io.trino.spi.block.DictionaryBlock::<init>(int, int, io.trino.spi.block.Block, int[], boolean, io.trino.spi.block.DictionaryId) - - - java.method.removed - method void io.trino.spi.block.DictionaryBlock::<init>(int, io.trino.spi.block.Block, int[], boolean, io.trino.spi.block.DictionaryId) - - - java.method.removed - method void io.trino.spi.block.DictionaryBlock::<init>(int, io.trino.spi.block.Block, int[], io.trino.spi.block.DictionaryId) - - - java.method.returnTypeChanged - method io.trino.spi.block.RunLengthEncodedBlock io.trino.spi.block.RunLengthBlockEncoding::readBlock(io.trino.spi.block.BlockEncodingSerde, io.airlift.slice.SliceInput) - method io.trino.spi.block.Block io.trino.spi.block.RunLengthBlockEncoding::readBlock(io.trino.spi.block.BlockEncodingSerde, io.airlift.slice.SliceInput) - - - java.method.visibilityReduced - method void io.trino.spi.block.RunLengthEncodedBlock::<init>(io.trino.spi.block.Block, int) - method void io.trino.spi.block.RunLengthEncodedBlock::<init>(io.trino.spi.block.Block, int) - public - private - - - true - java.method.numberOfParametersChanged - method void io.trino.spi.eventlistener.QueryStatistics::<init>(java.time.Duration, java.time.Duration, java.time.Duration, java.time.Duration, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, double, java.util.List<io.trino.spi.eventlistener.StageGcStatistics>, int, boolean, java.util.List<io.trino.spi.eventlistener.StageCpuDistribution>, java.util.List<java.lang.String>, java.util.Optional<java.lang.String>) - method void io.trino.spi.eventlistener.QueryStatistics::<init>(java.time.Duration, java.time.Duration, java.time.Duration, java.time.Duration, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, double, java.util.List<io.trino.spi.eventlistener.StageGcStatistics>, int, boolean, java.util.List<io.trino.spi.eventlistener.StageCpuDistribution>, java.util.List<java.util.Optional<io.trino.spi.metrics.Distribution<?>>>, java.util.List<java.lang.String>, java.util.Optional<java.lang.String>) - - + From 4520bed6afd67efdcdcd17a644281dcb78a57c9b Mon Sep 17 00:00:00 2001 From: David Phillips Date: Wed, 12 Oct 2022 15:26:45 -0700 Subject: [PATCH 2/2] Revert "Expose stage buffer utilization distribution to event listener" This reverts commit a102324c6c9238bb340274c5a52b6bd2cfaab5e1. Implementations of Count, Timing and Distribution are not in the SPI, and therefore they are not visible to the json serializer. As a result, they cannot be embedded in event listener objects. Doing so causes errors when attempting to log query events. --- .../java/io/trino/event/QueryMonitor.java | 25 ------------------- core/trino-spi/pom.xml | 10 ++++++++ .../spi/eventlistener/QueryStatistics.java | 10 -------- plugin/trino-http-event-listener/pom.xml | 6 ----- .../httpquery/TestHttpEventListener.java | 2 -- .../TestEventListenerWithSplits.java | 2 -- 6 files changed, 10 insertions(+), 45 deletions(-) diff --git a/core/trino-main/src/main/java/io/trino/event/QueryMonitor.java b/core/trino-main/src/main/java/io/trino/event/QueryMonitor.java index 205433b567bd..91f105bc2633 100644 --- a/core/trino-main/src/main/java/io/trino/event/QueryMonitor.java +++ b/core/trino-main/src/main/java/io/trino/event/QueryMonitor.java @@ -220,7 +220,6 @@ public void queryImmediateFailureEvent(BasicQueryInfo queryInfo, ExecutionFailur true, ImmutableList.of(), ImmutableList.of(), - ImmutableList.of(), Optional.empty()), createQueryContext( queryInfo.getSession(), @@ -325,7 +324,6 @@ private QueryStatistics createQueryStatistics(QueryInfo queryInfo) queryStats.getCompletedDrivers(), queryInfo.isFinalQueryInfo(), getCpuDistributions(queryInfo), - getStageOutputBufferUtilizationDistributions(queryInfo), operatorSummaries.build(), serializedPlanNodeStatsAndCosts); } @@ -705,29 +703,6 @@ private static StageCpuDistribution computeCpuDistribution(StageInfo stageInfo) snapshot.getTotal() / snapshot.getCount()); } - private static List>> getStageOutputBufferUtilizationDistributions(QueryInfo queryInfo) - { - if (queryInfo.getOutputStage().isEmpty()) { - return ImmutableList.of(); - } - - ImmutableList.Builder>> builder = ImmutableList.builder(); - populateStageOutputBufferUtilizationDistribution(queryInfo.getOutputStage().get(), builder); - - return builder.build(); - } - - private static void populateStageOutputBufferUtilizationDistribution(StageInfo stageInfo, ImmutableList.Builder>> distributions) - { - Optional> distribution = stageInfo.getStageStats().getOutputBufferUtilization() - // cast to ? - .map(dist -> dist); - distributions.add(distribution); - for (StageInfo subStage : stageInfo.getSubStages()) { - populateStageOutputBufferUtilizationDistribution(subStage, distributions); - } - } - private static class FragmentNode { private final PlanFragmentId fragmentId; diff --git a/core/trino-spi/pom.xml b/core/trino-spi/pom.xml index 382538cce6d6..535d73e7db66 100644 --- a/core/trino-spi/pom.xml +++ b/core/trino-spi/pom.xml @@ -181,6 +181,16 @@ + + java.method.numberOfParametersChanged + method void io.trino.spi.eventlistener.QueryStatistics::<init>(java.time.Duration, java.time.Duration, java.time.Duration, java.time.Duration, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, double, java.util.List<io.trino.spi.eventlistener.StageGcStatistics>, int, boolean, java.util.List<io.trino.spi.eventlistener.StageCpuDistribution>, java.util.List<java.util.Optional<io.trino.spi.metrics.Distribution<?>>>, java.util.List<java.lang.String>, java.util.Optional<java.lang.String>) + method void io.trino.spi.eventlistener.QueryStatistics::<init>(java.time.Duration, java.time.Duration, java.time.Duration, java.time.Duration, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, java.util.Optional<java.time.Duration>, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, double, java.util.List<io.trino.spi.eventlistener.StageGcStatistics>, int, boolean, java.util.List<io.trino.spi.eventlistener.StageCpuDistribution>, java.util.List<java.lang.String>, java.util.Optional<java.lang.String>) + + + true + java.method.removed + method java.util.List<java.util.Optional<io.trino.spi.metrics.Distribution<?>>> io.trino.spi.eventlistener.QueryStatistics::getStageOutputBufferUtilizationDistribution() + diff --git a/core/trino-spi/src/main/java/io/trino/spi/eventlistener/QueryStatistics.java b/core/trino-spi/src/main/java/io/trino/spi/eventlistener/QueryStatistics.java index b1b9a56bbfcb..240c3b0ef7eb 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/eventlistener/QueryStatistics.java +++ b/core/trino-spi/src/main/java/io/trino/spi/eventlistener/QueryStatistics.java @@ -15,7 +15,6 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import io.trino.spi.metrics.Distribution; import java.time.Duration; import java.util.List; @@ -68,7 +67,6 @@ public class QueryStatistics private final boolean complete; private final List cpuTimeDistribution; - private final List>> stageOutputBufferUtilizationDistribution; /** * Operator summaries serialized to JSON. Serialization format and structure @@ -118,7 +116,6 @@ public QueryStatistics( int completedSplits, boolean complete, List cpuTimeDistribution, - List>> stageOutputBufferUtilizationDistribution, List operatorSummaries, Optional planNodeStatsAndCosts) { @@ -157,7 +154,6 @@ public QueryStatistics( this.completedSplits = completedSplits; this.complete = complete; this.cpuTimeDistribution = requireNonNull(cpuTimeDistribution, "cpuTimeDistribution is null"); - this.stageOutputBufferUtilizationDistribution = requireNonNull(stageOutputBufferUtilizationDistribution, "stageOutputBufferUtilizationDistribution is null"); this.operatorSummaries = requireNonNull(operatorSummaries, "operatorSummaries is null"); this.planNodeStatsAndCosts = requireNonNull(planNodeStatsAndCosts, "planNodeStatsAndCosts is null"); } @@ -372,12 +368,6 @@ public List getCpuTimeDistribution() return cpuTimeDistribution; } - @JsonProperty - public List>> getStageOutputBufferUtilizationDistribution() - { - return stageOutputBufferUtilizationDistribution; - } - @JsonProperty public List getOperatorSummaries() { diff --git a/plugin/trino-http-event-listener/pom.xml b/plugin/trino-http-event-listener/pom.xml index d175ca174120..bd3b83e31a54 100644 --- a/plugin/trino-http-event-listener/pom.xml +++ b/plugin/trino-http-event-listener/pom.xml @@ -110,12 +110,6 @@ test - - io.trino - trino-plugin-toolkit - test - - io.trino trino-testing-services diff --git a/plugin/trino-http-event-listener/src/test/java/io/trino/plugin/httpquery/TestHttpEventListener.java b/plugin/trino-http-event-listener/src/test/java/io/trino/plugin/httpquery/TestHttpEventListener.java index 2c800081e393..c44ad7b07a2c 100644 --- a/plugin/trino-http-event-listener/src/test/java/io/trino/plugin/httpquery/TestHttpEventListener.java +++ b/plugin/trino-http-event-listener/src/test/java/io/trino/plugin/httpquery/TestHttpEventListener.java @@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableMap; import io.airlift.json.JsonCodec; import io.trino.operator.RetryPolicy; -import io.trino.plugin.base.metrics.TDigestHistogram; import io.trino.spi.eventlistener.EventListener; import io.trino.spi.eventlistener.QueryCompletedEvent; import io.trino.spi.eventlistener.QueryContext; @@ -180,7 +179,6 @@ public class TestHttpEventListener 0, true, Collections.emptyList(), - List.of(Optional.of(TDigestHistogram.fromValue(42))), Collections.emptyList(), Optional.empty()); diff --git a/testing/trino-tests/src/test/java/io/trino/execution/TestEventListenerWithSplits.java b/testing/trino-tests/src/test/java/io/trino/execution/TestEventListenerWithSplits.java index 5eb5b5efcb73..8ec8d05875e7 100644 --- a/testing/trino-tests/src/test/java/io/trino/execution/TestEventListenerWithSplits.java +++ b/testing/trino-tests/src/test/java/io/trino/execution/TestEventListenerWithSplits.java @@ -183,8 +183,6 @@ public void testSplitsForNormalQuery() assertTrue(statistics.getWallTime().getSeconds() >= 0); assertTrue(statistics.getCpuTimeDistribution().size() > 0); assertTrue(statistics.getOperatorSummaries().size() > 0); - assertTrue(statistics.getStageOutputBufferUtilizationDistribution().size() > 0); - assertTrue(statistics.getStageOutputBufferUtilizationDistribution().stream().allMatch(Optional::isPresent)); } @Test