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