-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[Spill To Disk] Analytic_Eval_Node Support Spill Disk and Del Some Unless Code #3820
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
…c_Eval_Node, FE can open enable spilling by
set enable_spilling = true;
Now, Sort Node and Analytic_Eval_Node can spill to disk.
2. Delete merge merge_sorter code we do not use now.
3. Replace buffered_tuple_stream by buffered_tuple_stream2 in Analytic_Eval_Node and support spill to disk. Delete the useless code of buffered_block_mgr and buffered_tuple_stream.
4. Add DataStreamRecvr Profile. Move the counter belong to DataStreamRecvr from fragment to DataStreamRecvr Profile to make clear of Running Profile.
| _sub_plan_query_statistics_recvr(sub_plan_query_statistics_recvr) { | ||
| _mem_tracker.reset(new MemTracker(-1, "DataStreamRecvr", parent_tracker)); | ||
| _profile.reset(new RuntimeProfile(nullptr, "DataStreamRecvr")); | ||
| profile->add_child(_profile.get(), true, nullptr); |
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.
| profile->add_child(_profile.get(), true, nullptr); | |
| _profile->add_child(_profile.get(), true, nullptr); |
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.
@wutiangan Hello, The profile is the param of the method DataStreamRecvr constructed function. _profile is the unique_ptr of the RunningProile be long to the object DataStreamRecvr.
So they are indeed different, the suggest change may cause problem.
| _block_write_threshold(tmp_file_mgr->num_active_tmp_devices() * 2), | ||
| // _disable_spill(state->query_ctx().disable_spilling), | ||
| _disable_spill(false), | ||
| _disable_spill(state->disable_spill()), |
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.
use enable_spill is better which is compatible to fe
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.
ok,i will change the bool var
morningman
left a comment
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.
LGTM
Add enable spilling in query option, upport spill disk in Analytic_Eval_Node, FE can open enable spilling by
Now, Sort Node and Analytic_Eval_Node can spill to disk.
2. Delete merge merge_sorter code we do not use now.
3. Replace buffered_tuple_stream by buffered_tuple_stream2 in Analytic_Eval_Node and support spill to disk. Delete the useless code of buffered_block_mgr and buffered_tuple_stream.
4. Add DataStreamRecvr Profile. Move the counter belong to DataStreamRecvr from fragment to DataStreamRecvr Profile to make clear of Running Profile.