Skip to content

Conversation

@aglinxinyuan
Copy link
Contributor

@aglinxinyuan aglinxinyuan commented Jan 14, 2026

What changes were proposed in this PR?

We are introducing a materialized execution mode alongside the existing pipelined execution mode.

To support this, a new workflow setting called execution mode has been added, along with a corresponding backend flag. Materialized and pipelined execution are treated as the same level and are represented as an enum in the configuration.

We also introduce a flag named defaultExecutionMode, whose value is set to pipelined.

Execution Mode Demo
Pipelined Pipelined
Materialized Materialized

Any related issues, documentation, discussions?

This PR resolves issue #4157.

How was this PR tested?

Tested with the existing test cases and test cases added for MATERIALIZED ExecutionMode:

  • Execution Tests (DataProcessingSpec.scala): Added 10 test cases verifying that workflows with various operator combinations (CSV/JSONL sources, filters, aggregations, joins) execute correctly in MATERIALIZED mode and produce the same results as PIPELINED mode.
  • Region Tests (CostBasedScheduleGeneratorSpec.scala): Added 5 test cases verifying that CostBasedScheduleGenerator correctly creates one region per operator in MATERIALIZED mode, with assertions confirming: (1) only 1 state explored, (2) number of regions equals number of operators, (3) each region contains exactly 1 operator, and (4) all physical links become materialized region boundaries.

Was this PR authored or co-authored using generative AI tooling?

No.

@aglinxinyuan aglinxinyuan self-assigned this Jan 14, 2026
@aglinxinyuan aglinxinyuan added backend Anything related to backend services gui labels Jan 14, 2026
@github-actions github-actions bot added engine frontend Changes related to the frontend GUI common labels Jan 14, 2026
@aglinxinyuan aglinxinyuan changed the title Xinyuan stage by stage feat: introduce batch execution mode Jan 14, 2026
@aglinxinyuan aglinxinyuan marked this pull request as draft January 14, 2026 05:25
@aglinxinyuan
Copy link
Contributor Author

I will mark this PR ready after adding test cases.

@aglinxinyuan aglinxinyuan linked an issue Jan 14, 2026 that may be closed by this pull request
@aglinxinyuan aglinxinyuan changed the title feat: introduce batch execution mode feat: introduce materialized execution mode Jan 18, 2026
@aglinxinyuan aglinxinyuan marked this pull request as ready for review January 22, 2026 01:25
Copy link
Contributor

@Xiao-zhen-Liu Xiao-zhen-Liu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good in general. Left a few comments.

@aglinxinyuan aglinxinyuan dismissed Yicong-Huang’s stale review January 24, 2026 02:15

Comments are addressed.

@aglinxinyuan aglinxinyuan merged commit 850fd85 into main Jan 24, 2026
10 checks passed
@aglinxinyuan aglinxinyuan deleted the xinyuan-stage-by-stage branch January 24, 2026 02:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Anything related to backend services common engine frontend Changes related to the frontend GUI gui service

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Batch Execution Mode

3 participants