github-actions[bot] commented on code in PR #24844:
URL: https://github.com/apache/doris/pull/24844#discussion_r1335324928


##########
be/src/pipeline/pipeline_task.h:
##########
@@ -246,6 +249,17 @@
 
     TUniqueId instance_id() const { return _state->fragment_instance_id(); }
 
+    void set_empty_task(bool is_empty_task) { _is_empty_task = is_empty_task; }
+
+    bool is_empty_task() { return _is_empty_task; }

Review Comment:
   warning: method 'is_empty_task' can be made const 
[readability-make-member-function-const]
   
   ```suggestion
       bool is_empty_task() const { return _is_empty_task; }
   ```
   



##########
be/src/runtime/task_group/task_group.h:
##########
@@ -50,6 +50,8 @@ class TaskGroupEntity {
     explicit TaskGroupEntity(taskgroup::TaskGroup* tg, std::string type);
     ~TaskGroupEntity();
 
+    TaskGroupEntity() {} // used for empty group entity

Review Comment:
   warning: use '= default' to define a trivial default constructor 
[modernize-use-equals-default]
   
   ```suggestion
       TaskGroupEntity() = default; // used for empty group entity
   ```
   



##########
be/src/vec/exec/scan/scan_task_queue.cpp:
##########
@@ -53,8 +53,71 @@
     return r;
 }
 
-ScanTaskTaskGroupQueue::ScanTaskTaskGroupQueue(size_t core_size) : 
_core_size(core_size) {}
-ScanTaskTaskGroupQueue::~ScanTaskTaskGroupQueue() = default;
+ScanTaskTaskGroupQueue::ScanTaskTaskGroupQueue(size_t core_size) : 
_core_size(core_size) {
+    _empty_scan_task->scan_entity = _empty_group_entity;
+    _empty_scan_task->is_empty_task = true;
+    _empty_group_entity->set_empty_group_entity(true);
+
+    ThreadPoolBuilder("ScanQueuePool")
+            .set_min_threads(1)
+            .set_max_threads(1)
+            .set_max_queue_size(1)
+            .build(&_thread_pool);
+    _thread_pool->submit_func([this]() { this->print_group_info(); });
+}
+
+ScanTaskTaskGroupQueue::~ScanTaskTaskGroupQueue() {
+    delete _empty_group_entity;
+    delete _empty_scan_task;
+}
+
+void ScanTaskTaskGroupQueue::print_group_info() {
+    uint64_t last_user_cpu_time = 0;
+    uint64_t last_user_take_count = 0;
+
+    uint64_t last_empty_cpu_time = 0;
+    uint64_t last_empty_take_count = 0;
+    while (true) {
+        {
+            std::unique_lock<std::mutex> lock(_rs_mutex);

Review Comment:
   warning: variable 'lock' is not initialized 
[cppcoreguidelines-init-variables]
   
   ```suggestion
               std::unique_lock<std::mutex> lock = 0(_rs_mutex);
   ```
   



##########
be/src/runtime/task_group/task_group.h:
##########
@@ -68,7 +70,15 @@
 
     void check_and_update_cpu_share(const TaskGroupInfo& tg_info);
 
-private:
+    void set_empty_group_entity(bool is_empty_group_entity);
+
+    bool is_empty_group_entity();
+
+    void update_empty_cpu_share(uint64_t empty_cpu_share);
+
+    uint64_t _real_runtime_ns = 0;
+
+public:

Review Comment:
   warning: redundant access specifier has the same accessibility as the 
previous access specifier [readability-redundant-access-specifiers]
   
   ```suggestion
   
   ```
   <details>
   <summary>Additional context</summary>
   
   **be/src/runtime/task_group/task_group.h:48:** previously declared here
   ```cpp
   public:
   ^
   ```
   
   </details>
   



##########
be/src/pipeline/task_queue.cpp:
##########
@@ -222,9 +222,82 @@ bool 
TaskGroupTaskQueue::TaskGroupSchedEntityComparator::operator()(
 }
 
 TaskGroupTaskQueue::TaskGroupTaskQueue(size_t core_size)
-        : TaskQueue(core_size), _min_tg_entity(nullptr) {}
+        : TaskQueue(core_size), _min_tg_entity(nullptr) {
+    _empty_pip_task->set_empty_task(true);
+    _empty_pip_task->set_task_queue(this);
+    _empty_pip_task->set_task_group_entity(_empty_group_entity);
+    _empty_group_entity->set_empty_group_entity(true);
+
+    // for test
+    ThreadPoolBuilder("TaskQueuePool")
+            .set_min_threads(1)
+            .set_max_threads(1)
+            .set_max_queue_size(1)
+            .build(&_thread_pool);
+    _thread_pool->submit_func([this]() { this->print_group_info(); });
+}
+
+TaskGroupTaskQueue::~TaskGroupTaskQueue() {
+    delete _empty_group_entity;
+    delete _empty_pip_task;
+}
+
+void TaskGroupTaskQueue::print_group_info() {

Review Comment:
   warning: method 'print_group_info' can be made const 
[readability-make-member-function-const]
   
   ```suggestion
   void TaskGroupTaskQueue::print_group_info() const {
   ```
   
   be/src/pipeline/task_queue.h:193:
   ```diff
   -     void print_group_info();
   +     void print_group_info() const;
   ```
   



##########
be/src/pipeline/pipeline_task.h:
##########
@@ -117,6 +117,8 @@ class PipelineTask {
                  PipelineFragmentContext* fragment_context, RuntimeProfile* 
parent_profile);
     virtual ~PipelineTask() = default;
 
+    PipelineTask() {}

Review Comment:
   warning: use '= default' to define a trivial default constructor 
[modernize-use-equals-default]
   
   ```suggestion
       PipelineTask() = default;
   ```
   



##########
be/src/vec/exec/scan/scan_task_queue.cpp:
##########
@@ -53,8 +53,71 @@ bool ScanTaskQueue::try_get(ScanTask* scan_task, uint32_t 
timeout_ms) {
     return r;
 }
 
-ScanTaskTaskGroupQueue::ScanTaskTaskGroupQueue(size_t core_size) : 
_core_size(core_size) {}
-ScanTaskTaskGroupQueue::~ScanTaskTaskGroupQueue() = default;
+ScanTaskTaskGroupQueue::ScanTaskTaskGroupQueue(size_t core_size) : 
_core_size(core_size) {
+    _empty_scan_task->scan_entity = _empty_group_entity;
+    _empty_scan_task->is_empty_task = true;
+    _empty_group_entity->set_empty_group_entity(true);
+
+    ThreadPoolBuilder("ScanQueuePool")
+            .set_min_threads(1)
+            .set_max_threads(1)
+            .set_max_queue_size(1)
+            .build(&_thread_pool);
+    _thread_pool->submit_func([this]() { this->print_group_info(); });
+}
+
+ScanTaskTaskGroupQueue::~ScanTaskTaskGroupQueue() {
+    delete _empty_group_entity;
+    delete _empty_scan_task;
+}
+
+void ScanTaskTaskGroupQueue::print_group_info() {

Review Comment:
   warning: method 'print_group_info' can be made const 
[readability-make-member-function-const]
   
   be/src/vec/exec/scan/scan_task_queue.h:79:
   ```diff
   -     void print_group_info();
   +     void print_group_info() const;
   ```
   
   ```suggestion
   void ScanTaskTaskGroupQueue::print_group_info() const {
   ```
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to