This PR removes the usage of spooled metadata symbols and the SpooledBlock class from various components to inline metadata data on worker nodes. Key changes include:
Copilot reviewed 19 out of 19 changed files in this pull request and generated no comments.
File | Description |
---|---|
core/trino-main/src/test/java/io/trino/server/protocol/spooling/TestSpoolingMetadataBlockSerde.java | Added tests for serialization round trip of new spooling metadata blocks. |
core/trino-main/src/test/java/io/trino/server/protocol/spooling/TestSpooledBlock.java | Removed obsolete test file for the removed SpooledBlock. |
core/trino-main/src/main/java/io/trino/sql/planner/sanity/ValidateDependenciesChecker.java | Updated dependency validations to stop filtering out spooling metadata symbols. |
core/trino-main/src/main/java/io/trino/server/protocol/spooling/SpoolingQueryDataProducer.java | Updated metadata handling to use a switch on the new SpoolingMetadataBlock types. |
core/trino-main/src/main/java/io/trino/server/protocol/spooling/SpoolingMetadataBlockSerde.java | New serialization logic supporting the sealed SpoolingMetadataBlock interface. |
core/trino-main/src/main/java/io/trino/server/protocol/spooling/SpoolingMetadataBlock.java | New sealed interface that replaces the removed SpooledBlock implementation. |
core/trino-main/src/main/java/io/trino/operator/OutputSpoolingOperatorFactory.java | Adjusted inline data handling and metadata layout to eliminate spooling metadata symbols. |
core/trino-main/src/main/java/io/trino/execution/SqlQueryExecution.java | Removed spoolingManagerRegistry dependency from query execution. |
core/trino-main/src/main/java/io/trino/cost/PlanNodeStatsEstimate.java | Removed spooling metadata filtering from statistics calculations. |
core/trino-main/src/main/java/io/trino/sql/planner/sanity/ValidateDependenciesChecker.java:500
checkDependencies(source.getOutputSymbols(), node.getOutputSymbols(), "Invalid node. Output column dependencies (%s) not in source plan output (%s)", node.getOutputSymbols(), source.getOutputSymbols());
core/trino-main/src/main/java/io/trino/server/protocol/spooling/SpoolingQueryDataProducer.java:55
switch (metadataBlock) {
core/trino-main/src/main/java/io/trino/operator/OutputSpoolingOperatorFactory.java:309
return SpoolingMetadataBlock.forSpooledLocation(spoolingManager.location(segmentHandle), attributes).serialize();
core/trino-main/src/main/java/io/trino/execution/SqlQueryExecution.java:159
private final SpoolingManagerRegistry spoolingManagerRegistry;
core/trino-main/src/main/java/io/trino/cost/PlanNodeStatsEstimate.java:84
.filter(symbol -> !symbol.type().equals(SPOOLING_METADATA_TYPE))
core/trino-main/src/main/java/io/trino/server/protocol/spooling/SpoolingMetadataBlockSerde.java:37
* 0 - VARCHAR - metadata
Login to write a write a comment.
Description
Additional context and related issues
Release notes
( ) This is not user-visible or is docs only, and no release notes are required.
( ) Release notes are required. Please propose a release note for me.
(x) Release notes are required, with the following suggested text: