-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve planning time for Iceberg simple SELECT queries with optional LIMIT #17347
Conversation
f27f169
to
1c646c2
Compare
bb48796
to
5e8ead4
Compare
...n/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetadataFileOperations.java
Show resolved
Hide resolved
...n/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetadataFileOperations.java
Show resolved
Hide resolved
plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergTableHandle.java
Show resolved
Hide resolved
plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergMetadata.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple nit-picks, and test failures look relevant. Neat improvement though
plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergMetadata.java
Outdated
Show resolved
Hide resolved
plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplitSource.java
Show resolved
Hide resolved
plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplitSource.java
Show resolved
Hide resolved
plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplitSource.java
Outdated
Show resolved
Hide resolved
I noticed you had to override the default executor for the table scan in the tests. Is the change still useful with the default behavior? |
yes, i am using direct executor for determinism Without that there still is improvement, but because I am still concerned about the fact we're opening 20 manifests, while 3 should suffice. |
I will drop I will add EXPLAIN ANALYZE test case too because of
|
5e8ead4
to
bdd89a6
Compare
AC |
bdd89a6
to
50409fc
Compare
Found it. See code comment just added (https://github.com/trinodb/trino/compare/bdd89a6efc32f7fef1ba29eeb7e60cbab8b52761..50409fc8c53c99bc4f7d5810e7a346730bd84f4c) |
50409fc
to
987c8d8
Compare
rebased to resolve conflict |
ignoring |
We probably would get advantages similar to achieved here without modifying the connector by tuning |
When `assertThat(...).containsExactlyInAnyOrderElementsOf` fails, it prints diff, requiring to count elements in the diff. Reuse more friendly assertions previously used for metastore access tests only.
There were two defaults -- one in the query runner (used by some tests) and one TEST_SESSION (used by most tests).
Previously we called `Scan.planFiles` and transformed it with `TableScanUtil.splitFiles`. The new code iterates over output from `Scan.planFiles` and splits each individually. As the advantage, this introduces a scope within which we know a file has been processed.
987c8d8
to
0f82b0f
Compare
(rebased to resolve conflicts) |
if (!fileTasksIterator.hasNext()) { | ||
// This is the last task for this file | ||
if (!fileHasAnyDeletions) { | ||
// There were no deletions, so we produces splits covering the whole file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// There were no deletions, so we produces splits covering the whole file | |
// There were no deletions, so we produce splits covering the whole file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks! changing to "produced"
0f82b0f
to
6dc58d1
Compare
No description provided.