You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Weston Pace (Jira)" <ji...@apache.org> on 2021/12/03 01:18:00 UTC

[jira] [Commented] (ARROW-14970) [C++][Compute] Replace ExecNode::InputReceived with ::MakeTask (Part 2)

    [ https://issues.apache.org/jira/browse/ARROW-14970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17452675#comment-17452675 ] 

Weston Pace commented on ARROW-14970:
-------------------------------------

We talked about this offline but I'll add it as a comment here for visibility.  I think this is a good idea but I'd like to avoid task-per-node (although that could be an acceptable stepping stone).  One way we can do this (inspired by work from [~aocsa]) is change InputReceived from:

{noformat}
void InputReceived(ExecNode* input, ExecBatch batch)
{noformat}

to something like...

{noformat}
void InputReceived(ExecNode* input, std::function<void(ExecBatch)> task)
{noformat}

A "terminating node" (e.g. sink node / pipeline breaker) could then submit the task.  A "non-terminating node" (e.g. filter/project/etc.) could wrap the task with its own work (function composition) and call InputReceived on the downstream node.

There are probably other ways to do this as well.

> [C++][Compute] Replace ExecNode::InputReceived with ::MakeTask (Part 2)
> -----------------------------------------------------------------------
>
>                 Key: ARROW-14970
>                 URL: https://issues.apache.org/jira/browse/ARROW-14970
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>    Affects Versions: 7.0.0
>            Reporter: Percy Camilo Triveño Aucahuasi
>            Assignee: Percy Camilo Triveño Aucahuasi
>            Priority: Major
>              Labels: compute
>
> In ARROW-13576 we made possible to defer computation of exec nodes but only for some implementations (e.g. Filter and Project) 
> This ticket is to continue that effort and make all the nodes submit their tasks at the moment they are operating the ExecNode::InputReceived
> Related tasks:
> https://issues.apache.org/jira/browse/ARROW-13576
> https://issues.apache.org/jira/browse/ARROW-14330
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)