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

Weston Pace commented on ARROW-12161:
-------------------------------------

Minor things.  The concept (in Scanner::ToTable) that some tasks would be async 
while others are sync (in 7001 they are all async but I can't make that change 
without pulling a lot more of 7001 in).  A lot of the logic in scanner_internal 
I can't easily pull over from 7001 because I reworked what was in there pretty 
heavily but I will need it.  So this will mean kind of cherry picking bits and 
pieces from 7001 to put into scanner_internal.

> [C++] Async streaming CSV reader deadlocking when being run synchronously 
> from datasets
> ---------------------------------------------------------------------------------------
>
>                 Key: ARROW-12161
>                 URL: https://issues.apache.org/jira/browse/ARROW-12161
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>            Reporter: Weston Pace
>            Assignee: Weston Pace
>            Priority: Major
>
> ARROW-11887 added async to the streaming CSV reader.  In order to keep 
> backwards compatibility the old sync API simply calls the async API and waits 
> for it to finish.  However, that wait cannot happen safely in a "nested" 
> context (e.g. dataset reading).
> For example, imagine two cores.  The dataset read launches two CSV scans.  
> Each scan occupies a core waiting for a future.  Those futures are being 
> filled by I/O threads.  The I/O threads finish and go to transfer.  The 
> transfer cannot happen because the CPU executor is filled.
> This will be fixed as part of ARROW-7001 but that still some ways away.  An 
> easier change might be to take some of the 7001 changes and include them as 
> part of the 11887 feature.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to