You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Tim Armstrong (Jira)" <ji...@apache.org> on 2021/01/09 01:37:01 UTC

[jira] [Resolved] (IMPALA-3904) Clean up waiting APIs in QueryExecState

     [ https://issues.apache.org/jira/browse/IMPALA-3904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Armstrong resolved IMPALA-3904.
-----------------------------------
    Resolution: Won't Do

> Clean up waiting APIs in QueryExecState
> ---------------------------------------
>
>                 Key: IMPALA-3904
>                 URL: https://issues.apache.org/jira/browse/IMPALA-3904
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Backend
>    Affects Versions: Impala 2.6.0
>            Reporter: Henry Robinson
>            Priority: Minor
>
> {{QueryExecState}} has some methods to allow clients to wait for rows to be ready to consume:
> * {{Wait()}} blocks until the rows are ready, but may only be called once - yet its name suggests it can be called by any client that wants to wait for rows. 
> * {{WaitAsync()}} starts a thread to run {{Wait()}}. So it doesn't actually wait.
> * {{BlockOnWait()}} does wait, and may be called several times.
> {{Wait()}} also does actual work (again, counter to its name), so it must always be called for queries (not for DML). So we should, presumably, always kick it off from {{Exec()}} rather than rely on callers to do it.
> I suggest changing the API to the following:
> * {{WaitForFirstRows()}} - callable by multiple clients, returns as soon as the first rows are ready to consume.
> * {{StartWaitThread()}} - private method, should only be called once, does everything {{Wait()}} does but is always async (the non-async case is only executed by Beeswax, and could be retired). It should be called from {{Exec()}}.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org