You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2022/04/29 07:58:07 UTC

[GitHub] [incubator-doris] hello-stephen commented on a diff in pull request #9290: [Enhancement](Vectorized)build hash table with new thread, as non-vec…

hello-stephen commented on code in PR #9290:
URL: https://github.com/apache/incubator-doris/pull/9290#discussion_r861552180


##########
be/src/vec/exec/join/vhash_join_node.cpp:
##########
@@ -956,10 +956,19 @@ Status HashJoinNode::open(RuntimeState* state) {
         RETURN_IF_ERROR((*_vother_join_conjunct_ptr)->open(state));
     }
 
-    RETURN_IF_ERROR(_hash_table_build(state));
-    RETURN_IF_ERROR(child(0)->open(state));
+    std::promise<Status> thread_status;
+    std::thread(bind(&HashJoinNode::_hash_table_build_thread, this, state, &thread_status))
+            .detach();
 
-    return Status::OK();
+    Status open_status = child(0)->open(state);

Review Comment:
   because I noticed this in non-vectorized hash_join_node.cpp, 
   ```
           // Open the probe-side child so that it may perform any initialisation in parallel.
           // Don't exit even if we see an error, we still need to wait for the build thread
           // to finish.
           Status open_status = child(0)->open(state);
   
           // Blocks until ConstructHashTable has returned, after which
           // the hash table is fully constructed and we can start the probe
           // phase.
           RETURN_IF_ERROR(thread_status.get_future().get());
   
           // ISSUE-1247, check open_status after buildThread execute.
           // If this return first, build thread will use 'thread_status'
           // which is already destructor and then coredump.
           RETURN_IF_ERROR(open_status);
   ```



-- 
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: commits-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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