You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2021/08/07 13:32:53 UTC

[incubator-doris] branch master updated: [DOC]Add a profile counter of local exchange send bytes (#6372)

This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 612684f  [DOC]Add a profile counter of local exchange send bytes (#6372)
612684f is described below

commit 612684fb2eec7c016b705b9df9b3923419efb2e0
Author: zhangstar333 <87...@users.noreply.github.com>
AuthorDate: Sat Aug 7 21:32:44 2021 +0800

    [DOC]Add a profile counter of local exchange send bytes (#6372)
    
    Add a profile counter of local exchange send bytes: LocalBytesSent
---
 be/src/runtime/data_stream_sender.cpp             | 4 ++++
 be/src/runtime/data_stream_sender.h               | 3 +++
 docs/en/administrator-guide/running-profile.md    | 1 +
 docs/zh-CN/administrator-guide/running-profile.md | 1 +
 4 files changed, 9 insertions(+)

diff --git a/be/src/runtime/data_stream_sender.cpp b/be/src/runtime/data_stream_sender.cpp
index 90124b0..436a017 100644
--- a/be/src/runtime/data_stream_sender.cpp
+++ b/be/src/runtime/data_stream_sender.cpp
@@ -317,6 +317,7 @@ Status DataStreamSender::Channel::send_local_batch(bool eos) {
         if (eos) {
             recvr->remove_sender(_parent->_sender_id, _be_number);
         }
+        COUNTER_UPDATE(_parent->_local_bytes_send_counter, _batch->total_byte_size());
     }
     _batch->reset();
     return Status::OK();
@@ -328,6 +329,7 @@ Status DataStreamSender::Channel::send_local_batch(RowBatch* batch, bool use_mov
                                                                    _dest_node_id);
     if (recvr != nullptr) {
         recvr->add_batch(batch, _parent->_sender_id, use_move);
+        COUNTER_UPDATE(_parent->_local_bytes_send_counter, batch->total_byte_size());
     }
     return Status::OK();
 }
@@ -384,6 +386,7 @@ DataStreamSender::DataStreamSender(ObjectPool* pool, int sender_id, const RowDes
           _profile(NULL),
           _serialize_batch_timer(NULL),
           _bytes_sent_counter(NULL),
+          _local_bytes_send_counter(NULL),
           _dest_node_id(sink.dest_node_id) {
     DCHECK_GT(destinations.size(), 0);
     DCHECK(sink.output_partition.type == TPartitionType::UNPARTITIONED ||
@@ -495,6 +498,7 @@ Status DataStreamSender::prepare(RuntimeState* state) {
             std::bind<int64_t>(&RuntimeProfile::units_per_second, _bytes_sent_counter,
                                profile()->total_time_counter()),
             "");
+    _local_bytes_send_counter = ADD_COUNTER(profile(), "LocalBytesSent", TUnit::BYTES);
     for (int i = 0; i < _channels.size(); ++i) {
         RETURN_IF_ERROR(_channels[i]->init(state));
     }
diff --git a/be/src/runtime/data_stream_sender.h b/be/src/runtime/data_stream_sender.h
index 7faf29b..5860403 100644
--- a/be/src/runtime/data_stream_sender.h
+++ b/be/src/runtime/data_stream_sender.h
@@ -148,6 +148,9 @@ private:
     // Throughput per total time spent in sender
     RuntimeProfile::Counter* _overall_throughput;
 
+    // Used to counter send bytes under local data exchange
+    RuntimeProfile::Counter* _local_bytes_send_counter;
+
     // Identifier of the destination plan node.
     PlanNodeId _dest_node_id;
 };
diff --git a/docs/en/administrator-guide/running-profile.md b/docs/en/administrator-guide/running-profile.md
index 926b084..e175271 100644
--- a/docs/en/administrator-guide/running-profile.md
+++ b/docs/en/administrator-guide/running-profile.md
@@ -110,6 +110,7 @@ There are many statistical information collected at BE.  so we list the correspo
 #### `DataStreamSender`
  - BytesSent: Total bytes data sent
  - IgnoreRows: Rows filtered
+ - LocalBytesSent: The amount bytes of local node send to it's self during Exchange
  - OverallThroughput: Total throughput = BytesSent / Time
  - SerializeBatchTime: Sending data serialization time
  - UncompressedRowBatchSize: Size of rowbatch before sending data compression
diff --git a/docs/zh-CN/administrator-guide/running-profile.md b/docs/zh-CN/administrator-guide/running-profile.md
index 67f7f58..b5f2d93 100644
--- a/docs/zh-CN/administrator-guide/running-profile.md
+++ b/docs/zh-CN/administrator-guide/running-profile.md
@@ -109,6 +109,7 @@ BE端收集的统计信息较多,下面列出了各个参数的对应含义:
 #### `DataStreamSender`
    - BytesSent: 发送的总数据量 = 接受者 * 发送数据量
    - IgnoreRows: 过滤的行数
+   - LocalBytesSent: 数据在Exchange过程中,记录本机节点的自发自收数据量
    - OverallThroughput: 总的吞吐量 = BytesSent / 时间
    - SerializeBatchTime: 发送数据序列化消耗的时间
    - UncompressedRowBatchSize: 发送数据压缩前的RowBatch的大小

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org