[enhancement] Refactor to improve the usability of MemTracker (step2) (#10823)

This commit is contained in:
Xinyi Zou
2022-07-21 17:11:28 +08:00
committed by GitHub
parent 5f6f35e886
commit 4960043f5e
316 changed files with 2145 additions and 4369 deletions

View File

@ -60,7 +60,7 @@ Status ExchangeNode::init(const TPlanNode& tnode, RuntimeState* state) {
Status ExchangeNode::prepare(RuntimeState* state) {
RETURN_IF_ERROR(ExecNode::prepare(state));
SCOPED_SWITCH_TASK_THREAD_LOCAL_MEM_TRACKER(mem_tracker());
SCOPED_CONSUME_MEM_TRACKER(mem_tracker());
_convert_row_batch_timer = ADD_TIMER(runtime_profile(), "ConvertRowBatchTime");
// TODO: figure out appropriate buffer size
DCHECK_GT(_num_senders, 0);
@ -70,8 +70,7 @@ Status ExchangeNode::prepare(RuntimeState* state) {
config::exchg_node_buffer_size_bytes, _runtime_profile.get(), _is_merging,
_sub_plan_query_statistics_recvr);
if (_is_merging) {
RETURN_IF_ERROR(_sort_exec_exprs.prepare(state, _row_descriptor, _row_descriptor,
expr_mem_tracker()));
RETURN_IF_ERROR(_sort_exec_exprs.prepare(state, _row_descriptor, _row_descriptor));
// AddExprCtxsToFree(_sort_exec_exprs);
}
return Status::OK();
@ -79,9 +78,8 @@ Status ExchangeNode::prepare(RuntimeState* state) {
Status ExchangeNode::open(RuntimeState* state) {
SCOPED_TIMER(_runtime_profile->total_time_counter());
SCOPED_SWITCH_TASK_THREAD_LOCAL_MEM_TRACKER(mem_tracker());
ADD_THREAD_LOCAL_MEM_TRACKER(_stream_recvr->mem_tracker());
RETURN_IF_ERROR(ExecNode::open(state));
SCOPED_CONSUME_MEM_TRACKER(mem_tracker());
if (_is_merging) {
RETURN_IF_ERROR(_sort_exec_exprs.open(state));
TupleRowComparator less_than(_sort_exec_exprs, _is_asc_order, _nulls_first);
@ -134,7 +132,7 @@ Status ExchangeNode::fill_input_row_batch(RuntimeState* state) {
Status ExchangeNode::get_next(RuntimeState* state, RowBatch* output_batch, bool* eos) {
SCOPED_TIMER(_runtime_profile->total_time_counter());
SCOPED_SWITCH_TASK_THREAD_LOCAL_EXISTED_MEM_TRACKER(mem_tracker());
SCOPED_CONSUME_MEM_TRACKER(mem_tracker());
if (reached_limit()) {
_stream_recvr->transfer_all_resources(output_batch);