-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Conversation
✅ Deploy Preview for meta-velox canceled.
|
@oerling has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
@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
This pull request was exported from Phabricator. Differential Revision: D66261119 |
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.
All CI passed.
Conbench analyzed the 1 benchmark run on commit There were no benchmark performance regressions. 🎉 The full Conbench report has more details. |
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
…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
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.