Skip to content
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

feat: Add runner for local distributed execution #11609

Closed
wants to merge 1 commit into from

Conversation

oerling
Copy link
Contributor

@oerling oerling commented Nov 20, 2024

Adds LocalRunner and LocalSchema for running distributed Velox plans in-process with multiple fragments and multiple tasks per fragment. This introduces the abstractions for distributed plans, their options, schema and split sources.

Adds an extension of PlanBuilder for building plan trees with shuffles. These get partitioned into multiple plan trees for execution with LocalRunner.

Adds LocalRunnerTestBase, a test base class with utilities for generating multiple tables each with multiple files of test data. These are then returned as a LocalSchema that can be used to produce splits for LocalRunner.

Adds error propagation for TaskCursor since distributed plans may have to produce errors from any fragment that are consumed by the application via TaskCursor.

This will be generalized to distributed execution on a cluster with Velox coordination and shuffles.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Nov 20, 2024
Copy link

netlify bot commented Nov 20, 2024

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit db0a6c7
🔍 Latest deploy log https://app.netlify.com/sites/meta-velox/deploys/673e5fc87c266a00089612ff

@facebook-github-bot
Copy link
Contributor

@oerling has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@oerling has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

…1609)

Summary:
Adds LocalRunner and LocalSchema for running distributed Velox plans in-process with multiple fragments and multiple tasks per fragment. This introduces the abstractions for distributed plans, their options, schema and split sources.

Adds an extension of PlanBuilder for building plan trees with shuffles. These get partitioned into multiple plan trees for execution with LocalRunner.

Adds LocalRunnerTestBase, a test base class with utilities for generating multiple tables each with multiple files of test data. These are then returned as a LocalSchema that can be used to produce splits for LocalRunner.

Adds error propagation for TaskCursor since distributed plans may have to produce errors from any fragment that are consumed by the application via TaskCursor.

This will be generalized to distributed execution on a cluster with Velox coordination and shuffles.


Differential Revision: D66261119

Pulled By: oerling
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D66261119

@assignUser assignUser changed the title FEAT: Add runner for local distributed execution feat: Add runner for local distributed execution Nov 20, 2024
Copy link
Contributor

@xiaoxmeng xiaoxmeng left a comment

Choose a reason for hiding this comment

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

All CI passed.

@facebook-github-bot
Copy link
Contributor

@oerling merged this pull request in 44e05dd.

Copy link

Conbench analyzed the 1 benchmark run on commit 44e05dd1.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

facebook-github-bot pushed a commit that referenced this pull request Nov 29, 2024
Summary:
A minor CMake fix for #11609, to address the linking issue when `VELOX_BUILD_TESTING` is off.

```C++
20:52:36  #10 2.268 CMake Error at velox/velox/runner/tests/CMakeLists.txt:19 (target_link_libraries):
20:52:36  #10 2.268   Target "velox_local_runner_test" links to:
20:52:36  #10 2.268
20:52:36  #10 2.268     GTest::gtest
20:52:36  #10 2.268
20:52:36  #10 2.268   but the target was not found.  Possible reasons include:
20:52:36  #10 2.268
20:52:36  #10 2.268     * There is a typo in the target name.
20:52:36  #10 2.268     * A find_package call is missing for an IMPORTED target.
20:52:36  #10 2.268     * An ALIAS target is missing.
20:52:36  #10 2.268
20:52:36  #10 2.268
20:52:36  #10 2.268
20:52:36  #10 2.273 CMake Generate step failed.  Build files cannot be regenerated correctly.
20:52:36  #10 2.302 make: *** [Makefile:96: cmake-and-build] Error 1
20:52:36  #10 2.302 make: Leaving directory '/prestissimo'
20:52:36  #10 ERROR: process "/bin/sh -c EXTRA_CMAKE_FLAGS=${EXTRA_CMAKE_FLAGS}     NUM_THREADS=${NUM_THREADS} make --directory=\"/prestissimo/\" cmake-and-build BUILD_TYPE=${BUILD_TYPE} BUILD_DIR=${BUILD_DIR} BUILD_BASE_DIR=${BUILD_BASE_DIR}" did not complete successfully: exit code: 2
```

Pull Request resolved: #11669

Reviewed By: zacw7

Differential Revision: D66560342

Pulled By: xiaoxmeng

fbshipit-source-id: 9f6b74c5a64f6e248cb8d86ec213ae76eb894770
TongWei1105 pushed a commit to TongWei1105/velox that referenced this pull request Dec 3, 2024
…kincubator#11669)

Summary:
A minor CMake fix for facebookincubator#11609, to address the linking issue when `VELOX_BUILD_TESTING` is off.

```C++
20:52:36  facebookincubator#10 2.268 CMake Error at velox/velox/runner/tests/CMakeLists.txt:19 (target_link_libraries):
20:52:36  facebookincubator#10 2.268   Target "velox_local_runner_test" links to:
20:52:36  facebookincubator#10 2.268
20:52:36  facebookincubator#10 2.268     GTest::gtest
20:52:36  facebookincubator#10 2.268
20:52:36  facebookincubator#10 2.268   but the target was not found.  Possible reasons include:
20:52:36  facebookincubator#10 2.268
20:52:36  facebookincubator#10 2.268     * There is a typo in the target name.
20:52:36  facebookincubator#10 2.268     * A find_package call is missing for an IMPORTED target.
20:52:36  facebookincubator#10 2.268     * An ALIAS target is missing.
20:52:36  facebookincubator#10 2.268
20:52:36  facebookincubator#10 2.268
20:52:36  facebookincubator#10 2.268
20:52:36  facebookincubator#10 2.273 CMake Generate step failed.  Build files cannot be regenerated correctly.
20:52:36  facebookincubator#10 2.302 make: *** [Makefile:96: cmake-and-build] Error 1
20:52:36  facebookincubator#10 2.302 make: Leaving directory '/prestissimo'
20:52:36  facebookincubator#10 ERROR: process "/bin/sh -c EXTRA_CMAKE_FLAGS=${EXTRA_CMAKE_FLAGS}     NUM_THREADS=${NUM_THREADS} make --directory=\"/prestissimo/\" cmake-and-build BUILD_TYPE=${BUILD_TYPE} BUILD_DIR=${BUILD_DIR} BUILD_BASE_DIR=${BUILD_BASE_DIR}" did not complete successfully: exit code: 2
```

Pull Request resolved: facebookincubator#11669

Reviewed By: zacw7

Differential Revision: D66560342

Pulled By: xiaoxmeng

fbshipit-source-id: 9f6b74c5a64f6e248cb8d86ec213ae76eb894770
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants