-
Notifications
You must be signed in to change notification settings - Fork 3.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
[PipelineX](improvement) Prepare tasks in parallel #32789
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
@@ -162,7 +162,8 @@ void PipelineXFragmentContext::cancel(const PPlanFragmentCancelReason& reason, | |||
} | |||
} | |||
|
|||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request, |
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.
warning: function 'prepare' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:164: 107 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
@@ -479,11 +480,14 @@ | |||
return Status::OK(); | |||
} | |||
|
|||
Status PipelineXFragmentContext::_build_pipeline_tasks( | |||
const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::_build_pipeline_x_tasks( |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:482: 220 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
TeamCity be ut coverage result: |
run buildall |
TeamCity be ut coverage result: |
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
@@ -162,7 +164,8 @@ void PipelineXFragmentContext::cancel(const PPlanFragmentCancelReason& reason, | |||
} | |||
} | |||
|
|||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request, |
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.
warning: function 'prepare' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:166: 107 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
@@ -479,11 +482,14 @@ | |||
return Status::OK(); | |||
} | |||
|
|||
Status PipelineXFragmentContext::_build_pipeline_tasks( | |||
const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::_build_pipeline_x_tasks( |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:484: 216 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
run buildall |
TeamCity be ut coverage result: |
run buildall |
TeamCity be ut coverage result: |
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
@@ -164,7 +166,8 @@ void PipelineXFragmentContext::cancel(const PPlanFragmentCancelReason& reason, | |||
} | |||
} | |||
|
|||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request, |
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.
warning: function 'prepare' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:168: 106 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
@@ -480,11 +483,14 @@ | |||
return Status::OK(); | |||
} | |||
|
|||
Status PipelineXFragmentContext::_build_pipeline_tasks( | |||
const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::_build_pipeline_x_tasks( |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:485: 216 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
TeamCity be ut coverage result: |
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
@@ -486,11 +491,14 @@ Status PipelineXFragmentContext::_create_data_sink(ObjectPool* pool, const TData | |||
return Status::OK(); | |||
} |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:491: 216 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
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
@@ -164,7 +166,8 @@ void PipelineXFragmentContext::cancel(const PPlanFragmentCancelReason& reason, | |||
} | |||
} | |||
|
|||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request, |
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.
warning: function 'prepare' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:168: 108 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
@@ -486,11 +491,14 @@ | |||
return Status::OK(); | |||
} | |||
|
|||
Status PipelineXFragmentContext::_build_pipeline_tasks( | |||
const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::_build_pipeline_x_tasks( |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:493: 216 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
TeamCity be ut coverage result: |
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
@@ -486,11 +491,14 @@ Status PipelineXFragmentContext::_create_data_sink(ObjectPool* pool, const TData | |||
return Status::OK(); | |||
} | |||
|
|||
Status PipelineXFragmentContext::_build_pipeline_tasks( | |||
const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::_build_pipeline_x_tasks( |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:493: 217 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
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
@@ -486,11 +491,14 @@ Status PipelineXFragmentContext::_create_data_sink(ObjectPool* pool, const TData | |||
return Status::OK(); | |||
} | |||
|
|||
Status PipelineXFragmentContext::_build_pipeline_tasks( | |||
const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::_build_pipeline_x_tasks( |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:493: 215 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
TeamCity be ut coverage result: |
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
@@ -164,7 +168,8 @@ void PipelineXFragmentContext::cancel(const PPlanFragmentCancelReason& reason, | |||
} | |||
} | |||
|
|||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request, |
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.
warning: function 'prepare' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:170: 105 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& request,
^
@@ -486,11 +490,17 @@ | |||
return Status::OK(); | |||
} | |||
|
|||
Status PipelineXFragmentContext::_build_pipeline_tasks( | |||
const doris::TPipelineFragmentParams& request) { | |||
Status PipelineXFragmentContext::_build_pipeline_x_tasks( |
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.
warning: function '_build_pipeline_x_tasks' exceeds recommended size/complexity thresholds [readability-function-size]
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
Additional context
be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp:492: 222 lines including whitespace and comments (threshold 80)
Status PipelineXFragmentContext::_build_pipeline_x_tasks(
^
TPC-H: Total hot run time: 38130 ms
|
TeamCity be ut coverage result: |
TPC-DS: Total hot run time: 183049 ms
|
ClickBench: Total hot run time: 30.21 s
|
Load test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
Proposed changes
Now pipeline tasks are prepared in serial mode which has high overhead for short queries. This PR change it to parallel preparation.
Further comments
If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...