[enhancement] Refactor to improve the usability of MemTracker (step2) (#10823)
This commit is contained in:
@ -147,9 +147,9 @@ Status VAnalyticEvalNode::init(const TPlanNode& tnode, RuntimeState* state) {
|
||||
Status VAnalyticEvalNode::prepare(RuntimeState* state) {
|
||||
SCOPED_TIMER(_runtime_profile->total_time_counter());
|
||||
RETURN_IF_ERROR(ExecNode::prepare(state));
|
||||
SCOPED_SWITCH_TASK_THREAD_LOCAL_MEM_TRACKER(mem_tracker());
|
||||
SCOPED_CONSUME_MEM_TRACKER(mem_tracker());
|
||||
DCHECK(child(0)->row_desc().is_prefix_of(row_desc()));
|
||||
_mem_pool.reset(new MemPool(mem_tracker().get()));
|
||||
_mem_pool.reset(new MemPool(mem_tracker()));
|
||||
_evaluation_timer = ADD_TIMER(runtime_profile(), "EvaluationTime");
|
||||
SCOPED_TIMER(_evaluation_timer);
|
||||
|
||||
@ -159,8 +159,7 @@ Status VAnalyticEvalNode::prepare(RuntimeState* state) {
|
||||
SlotDescriptor* intermediate_slot_desc = _intermediate_tuple_desc->slots()[i];
|
||||
SlotDescriptor* output_slot_desc = _output_tuple_desc->slots()[i];
|
||||
RETURN_IF_ERROR(_agg_functions[i]->prepare(state, child(0)->row_desc(), _mem_pool.get(),
|
||||
intermediate_slot_desc, output_slot_desc,
|
||||
mem_tracker()));
|
||||
intermediate_slot_desc, output_slot_desc));
|
||||
}
|
||||
|
||||
_offsets_of_aggregate_states.resize(_agg_functions_size);
|
||||
@ -193,7 +192,7 @@ Status VAnalyticEvalNode::prepare(RuntimeState* state) {
|
||||
std::placeholders::_2, std::placeholders::_3, std::placeholders::_4);
|
||||
|
||||
for (const auto& ctx : _agg_expr_ctxs) {
|
||||
VExpr::prepare(ctx, state, child(0)->row_desc(), expr_mem_tracker());
|
||||
VExpr::prepare(ctx, state, child(0)->row_desc());
|
||||
}
|
||||
if (!_partition_by_eq_expr_ctxs.empty() || !_order_by_eq_expr_ctxs.empty()) {
|
||||
vector<TTupleId> tuple_ids;
|
||||
@ -201,12 +200,10 @@ Status VAnalyticEvalNode::prepare(RuntimeState* state) {
|
||||
tuple_ids.push_back(_buffered_tuple_id);
|
||||
RowDescriptor cmp_row_desc(state->desc_tbl(), tuple_ids, vector<bool>(2, false));
|
||||
if (!_partition_by_eq_expr_ctxs.empty()) {
|
||||
RETURN_IF_ERROR(VExpr::prepare(_partition_by_eq_expr_ctxs, state, cmp_row_desc,
|
||||
expr_mem_tracker()));
|
||||
RETURN_IF_ERROR(VExpr::prepare(_partition_by_eq_expr_ctxs, state, cmp_row_desc));
|
||||
}
|
||||
if (!_order_by_eq_expr_ctxs.empty()) {
|
||||
RETURN_IF_ERROR(VExpr::prepare(_order_by_eq_expr_ctxs, state, cmp_row_desc,
|
||||
expr_mem_tracker()));
|
||||
RETURN_IF_ERROR(VExpr::prepare(_order_by_eq_expr_ctxs, state, cmp_row_desc));
|
||||
}
|
||||
}
|
||||
return Status::OK();
|
||||
@ -215,8 +212,8 @@ Status VAnalyticEvalNode::prepare(RuntimeState* state) {
|
||||
Status VAnalyticEvalNode::open(RuntimeState* state) {
|
||||
START_AND_SCOPE_SPAN(state->get_tracer(), span, "VAnalyticEvalNode::open");
|
||||
SCOPED_TIMER(_runtime_profile->total_time_counter());
|
||||
SCOPED_SWITCH_TASK_THREAD_LOCAL_MEM_TRACKER(mem_tracker());
|
||||
RETURN_IF_ERROR(ExecNode::open(state));
|
||||
SCOPED_CONSUME_MEM_TRACKER(mem_tracker());
|
||||
RETURN_IF_CANCELLED(state);
|
||||
RETURN_IF_ERROR(child(0)->open(state));
|
||||
RETURN_IF_ERROR(VExpr::open(_partition_by_eq_expr_ctxs, state));
|
||||
@ -253,7 +250,7 @@ Status VAnalyticEvalNode::get_next(RuntimeState* state, vectorized::Block* block
|
||||
INIT_AND_SCOPE_GET_NEXT_SPAN(state->get_tracer(), _get_next_span,
|
||||
"VAnalyticEvalNode::get_next");
|
||||
SCOPED_TIMER(_runtime_profile->total_time_counter());
|
||||
SCOPED_SWITCH_TASK_THREAD_LOCAL_EXISTED_MEM_TRACKER(mem_tracker());
|
||||
SCOPED_CONSUME_MEM_TRACKER(mem_tracker());
|
||||
RETURN_IF_CANCELLED(state);
|
||||
|
||||
if (_input_eos && _output_block_index == _input_blocks.size()) {
|
||||
|
||||
Reference in New Issue
Block a user