Commit 080acae
Parallelize Parquet checkpoint reads in the Delta Lake connector
Delta uses checkpoints to represent point-in-time snapshots of the
table, e.g. the full set of active files. Most queries and write
operations must load the checkpoint before proceeding. For large tables
checkpoints can be extremely large, so checkpoint loading is important
for overall query performance
This PR introduces full support for parallel reads of checkpoint files
in Delta tables using a new `ParallelUnorderedIterator` that pulls from
several `CheckpointEntryIterator` streams in parallel. New
configuration properties:
- `delta.checkpoint-processing.v{1,2}-parallel-processing.enabled`
- `delta.checkpoint-processing.intra-file-parallel-processing.enabled`
- `delta.checkpoint-processing.intra-file-parallel-processing.split-size`
controlling parallelization for v1/v2 checkpoints, intra-file (Parquet
split) parallelization, and target split size. We reuse the existing
`delta.checkpoint-processing.parallelism` to tune parallelism
Co-authored-by: Eric Hwang <eh@openai.com>1 parent 12a5cd1 commit 080acae
File tree
17 files changed
+1950
-122
lines changed- docs/src/main/sphinx/connector
- plugin/trino-delta-lake/src
- main/java/io/trino/plugin/deltalake
- transactionlog
- checkpoint
- test/java/io/trino/plugin/deltalake
- transactionlog
- checkpoint
- statistics
17 files changed
+1950
-122
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | | - | |
201 | | - | |
| 200 | + | |
| 201 | + | |
202 | 202 | | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
203 | 217 | | |
204 | 218 | | |
205 | 219 | | |
| |||
Lines changed: 60 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
95 | 96 | | |
96 | 97 | | |
97 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
98 | 103 | | |
99 | 104 | | |
100 | 105 | | |
| |||
581 | 586 | | |
582 | 587 | | |
583 | 588 | | |
584 | | - | |
| 589 | + | |
585 | 590 | | |
586 | 591 | | |
587 | 592 | | |
588 | 593 | | |
589 | 594 | | |
590 | 595 | | |
591 | 596 | | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
592 | 651 | | |
593 | 652 | | |
594 | 653 | | |
| |||
0 commit comments