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

Extend join fuzzer to cover group execution mode #9045

Closed
wants to merge 1 commit into from

Conversation

xiaoxmeng
Copy link
Contributor

@xiaoxmeng xiaoxmeng commented Mar 12, 2024

Extend join fuzzer to cover group execution mode. To do this we split the probe and
build input by partitioning on the join keys with one partition per each group. Then we
write the split the inputs into separate files and create table scan splits from the generated
files. For each existing query plan with table scan input, we create a corresponding
grouped execution plan.
Extend AssertQueryBuilder to support group execution configuration.

@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 Mar 12, 2024
Copy link

netlify bot commented Mar 12, 2024

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 5ca9daa
🔍 Latest deploy log https://app.netlify.com/sites/meta-velox/deploys/65f1d77bc0f66e0009a61c11

@xiaoxmeng xiaoxmeng force-pushed the fuzzer branch 5 times, most recently from ef80610 to 417736c Compare March 12, 2024 06:15
@xiaoxmeng xiaoxmeng marked this pull request as ready for review March 12, 2024 06:16
@xiaoxmeng xiaoxmeng force-pushed the fuzzer branch 3 times, most recently from df2bc59 to 70324ed Compare March 12, 2024 06:46
@facebook-github-bot
Copy link
Contributor

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


private:
// Invoked to set up memory system with arbitration.
static void setupMemory() {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Could we use ArbitratorTestUtil::createMemoryManager here?

Copy link
Contributor

Choose a reason for hiding this comment

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

@xiaoxmeng Would you answer this question?

@facebook-github-bot
Copy link
Contributor

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

size_t idx = randInt(0, kJoinTypes.size() - 1);
return kJoinTypes[idx];
const size_t idx = randInt(0, kJoinTypes.size() - 1);
joinType_ = kJoinTypes[idx];
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is this change? It feels hard to maintain a large list of member variables with different methods changing some of these.

Copy link
Contributor

@mbasmanova mbasmanova left a comment

Choose a reason for hiding this comment

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

@xiaoxmeng The approach looks good to me. There is a lot of code changes though. It is hard to follow these.

@mbasmanova mbasmanova requested a review from kevinwilfong March 12, 2024 23:07
@xiaoxmeng xiaoxmeng force-pushed the fuzzer branch 4 times, most recently from 5327f41 to cd12659 Compare March 13, 2024 05:50
@xiaoxmeng xiaoxmeng force-pushed the fuzzer branch 2 times, most recently from e7bee61 to 2352c41 Compare March 13, 2024 06:06
builder.executionStrategy(core::ExecutionStrategy::kGrouped);
builder.groupedExecutionLeafNodeIds({plan.probeScanId, plan.buildScanId});
builder.numSplitGroups(plan.numGroups);
builder.numConcurrentSplitGroups(1);
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it makes sense to test with > 1 concurrent split group as well?

Copy link
Contributor

@mbasmanova mbasmanova left a comment

Choose a reason for hiding this comment

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

@xiaoxmeng Looks good to me. Thank you for extending the Join Fuzzer to cover grouped execution. Please, run the fuzzer long enough to make sure there are no issues. Appreciate tidying up the code, but, please, next time avoid mixing cleanup / refactoring with material changes. It makes it difficult to review the changes.

@xiaoxmeng xiaoxmeng force-pushed the fuzzer branch 3 times, most recently from 3dcc9a8 to 8981e4d Compare March 13, 2024 16:12
@facebook-github-bot
Copy link
Contributor

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

Extend join fuzzer to cover group execution mode. To do this we split the probe and
build input by partitioning on the join keys with one partition per each group. Then we
write the split the inputs into separate files and create table scan splits from the generated
files. For each existing query plan with table scan input, we create a corresponding
grouped execution plan.
Extend AssertQueryBuilder to support group execution configuration.
@facebook-github-bot
Copy link
Contributor

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

2 similar comments
@facebook-github-bot
Copy link
Contributor

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

@facebook-github-bot
Copy link
Contributor

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

@facebook-github-bot
Copy link
Contributor

@xiaoxmeng merged this pull request in 3125512.

@xiaoxmeng xiaoxmeng deleted the fuzzer branch March 14, 2024 03:14
pedroerp added a commit to pedroerp/velox-1 that referenced this pull request May 22, 2024
Summary:
Alternative join plans (including sort + merge join) were accidentaly
disabled in a recent refactor
(facebookincubator#9045).
Re-enabling them in this PR.

Differential Revision: D57696398
pedroerp added a commit to pedroerp/velox-1 that referenced this pull request May 22, 2024
Summary:

Alternative join plans (including sort + merge join) were accidentaly
disabled in a recent refactor
(facebookincubator#9045).
Re-enabling them in this PR.

Differential Revision: D57696398
facebook-github-bot pushed a commit that referenced this pull request May 23, 2024
Summary:
Pull Request resolved: #9898

Alternative join plans (including sort + merge join) were accidentaly
disabled in a recent refactor
(#9045).
Re-enabling them in this PR.

Reviewed By: mbasmanova

Differential Revision: D57696398

fbshipit-source-id: d0264a1fa214f0e1b46ab03b54fa76fd5fb59173
Joe-Abraham pushed a commit to Joe-Abraham/velox that referenced this pull request Jun 7, 2024
)

Summary:
Extend join fuzzer to cover group execution mode. To do this we split the probe and
build input by partitioning on the join keys with one partition per each group. Then we
write the split the inputs into separate files and create table scan splits from the generated
files. For each existing query plan with table scan input, we create a corresponding
grouped execution plan.
Extend AssertQueryBuilder to support group execution configuration.

Pull Request resolved: facebookincubator#9045

Reviewed By: mbasmanova

Differential Revision: D54792224

Pulled By: xiaoxmeng

fbshipit-source-id: 79824df01a5468a4ebbd63316c1a046c3d4b92a1
Joe-Abraham pushed a commit to Joe-Abraham/velox that referenced this pull request Jun 7, 2024
Summary:
Pull Request resolved: facebookincubator#9898

Alternative join plans (including sort + merge join) were accidentaly
disabled in a recent refactor
(facebookincubator#9045).
Re-enabling them in this PR.

Reviewed By: mbasmanova

Differential Revision: D57696398

fbshipit-source-id: d0264a1fa214f0e1b46ab03b54fa76fd5fb59173
Joe-Abraham pushed a commit to Joe-Abraham/velox that referenced this pull request Jun 7, 2024
Summary:
Pull Request resolved: facebookincubator#9898

Alternative join plans (including sort + merge join) were accidentaly
disabled in a recent refactor
(facebookincubator#9045).
Re-enabling them in this PR.

Reviewed By: mbasmanova

Differential Revision: D57696398

fbshipit-source-id: d0264a1fa214f0e1b46ab03b54fa76fd5fb59173
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. Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants