-
Notifications
You must be signed in to change notification settings - Fork 3.6k
[fix](sink) The issue with 2GB limit of protocol buffer #37990
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
Conversation
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
run buildall |
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.
clang-tidy made some suggestions
@@ -80,6 +81,13 @@ void GetResultBatchCtx::on_data(const std::unique_ptr<TFetchDataResult>& t_resul | |||
result->set_packet_seq(packet_seq); | |||
result->set_eos(eos); | |||
} | |||
|
|||
/// The size limit of proto buffer message is 2G | |||
if (result->ByteSizeLong() > std::numeric_limits<int32_t>::max()) { |
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.
2G should be a config.
Set it to 1G.
TPC-H: Total hot run time: 40079 ms
|
TPC-DS: Total hot run time: 173515 ms
|
ClickBench: Total hot run time: 31 s
|
Block block; | ||
RETURN_IF_ERROR(VExprContext::get_output_block_after_execute_exprs(_output_vexpr_ctxs, | ||
input_block, &block)); | ||
constexpr static size_t MAX_BLOCK_SIZE = 1024L * 1024 * 1024; |
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.
change this to be.conf
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.
change the default value to 128MB
run buildall |
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.
clang-tidy made some suggestions
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
TPC-H: Total hot run time: 40073 ms
|
TPC-DS: Total hot run time: 172333 ms
|
ClickBench: Total hot run time: 31.04 s
|
## Proposed changes ``` Fail to serialize doris.PFetchDataResult ``` If the size of `PFetchDataResult` is greater than 2G, protocol buffer cannot serialize the message.
``` Fail to serialize doris.PFetchDataResult ``` If the size of `PFetchDataResult` is greater than 2G, protocol buffer cannot serialize the message.
``` Fail to serialize doris.PFetchDataResult ``` If the size of `PFetchDataResult` is greater than 2G, protocol buffer cannot serialize the message.
…ontrolBlock (#49571) (#49639) ### What problem does this PR solve? Pick #37990 and #49571 Related PR: #xxx Problem Summary: ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] Unit Test - [ ] Manual test (add detailed scripts or steps below) - [ ] No need to test or manual test. Explain why: - [ ] This is a refactor/code format and no logic has been changed. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#1214 --> ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into -->
Proposed changes
If the size of
PFetchDataResult
is greater than 2G, protocol buffer cannot serialize the message.