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

Use same max-output-buffer-size config for all types of output buffers #8426

Closed

Conversation

mbasmanova
Copy link
Contributor

@mbasmanova mbasmanova commented Jan 18, 2024

We need 2 configuration settings to control the behavior of PartitionedOutput
operator.

First, a limit on how many bytes to buffer inside the PartitionedOutput operator
itself. That limit is split N ways (where N is number of partitions) to compute
per-destination packet size. A packet here is a SerializedPage.

Second, a limit on how many bytes to buffer in OutputBuffer across all
destinations (a sum of all ready packets / SerializedPages). This limit needs
to be significantly higher than the first limit.

We have introduced the second limit earlier to use for arbitrary buffer, but it
should be used for all kinds of buffers (partitioned, broadcast and
arbitrary).

This change is to start using this second limit for all kinds of buffers. A
series of follow-up changes needs to rename the configuration property to
remove 'arbitrary' from the name in a backwards compatible way
(max_arbitrary_buffer_size -> max_buffer_size).

@mbasmanova mbasmanova requested a review from spershin January 18, 2024 00:24
Copy link

netlify bot commented Jan 18, 2024

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 9f58663
🔍 Latest deploy log https://app.netlify.com/sites/meta-velox/deploys/65a872c8bfee4d0008366b89

@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 Jan 18, 2024
@facebook-github-bot
Copy link
Contributor

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

@mbasmanova mbasmanova requested a review from xiaoxmeng January 18, 2024 00:29
@facebook-github-bot
Copy link
Contributor

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

@mbasmanova mbasmanova force-pushed the output-buffer-max-size branch from 5c141c8 to 224d581 Compare January 18, 2024 00:32
@facebook-github-bot
Copy link
Contributor

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

@mbasmanova mbasmanova force-pushed the output-buffer-max-size branch from 224d581 to 9f58663 Compare January 18, 2024 00:37
@facebook-github-bot
Copy link
Contributor

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

Comment on lines -264 to -273
uint64_t maxBufferSize(
const core::QueryConfig& config,
PartitionedOutputNode::Kind bufferKind) {
if (bufferKind == PartitionedOutputNode::Kind::kArbitrary) {
return config.maxArbitraryBufferSize();
}

return config.maxPartitionedOutputBufferSize();
}

Copy link
Contributor

Choose a reason for hiding this comment

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

Need to doublecheck why we had these two separated.
Can this cause any unexpected problem?

@facebook-github-bot
Copy link
Contributor

@mbasmanova merged this pull request in ec3bb6b.

Copy link

Conbench analyzed the 1 benchmark run on commit ec3bb6be.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

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.

3 participants