You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Xiao Meng <xi...@gmail.com> on 2014/12/02 20:52:53 UTC

Questions about recent state management changes in Drillbit

Hi,

We have observed recent changes in drill break the assumption of some C++
 application (like querySubmitter and ODBC driver).
We did a binary search on build version and the earliest change is:

https://builds.apache.org/job/drill-scm/142/

The change related should be:
DRILL-1517: Update Foreman to improve state management


Before  the Jenkin build 142, after the client send the query,  the
UserServer will send the results back in a sequence like:

RB[1] -> RB[2] ->  -> RB[n] -> QueryState_COMPLETED

where RB[i] is the i-th record patch and RB[n] is the one has the flag
is_last_chunk true.
With patch DRILL-1305 (https://issues.apache.org/jira/browse/DRILL-1305),
we let the C++ client consume the QueryState_COMPLETED message and get
notified the query is completed.

After build 142, we did not receive the QueryState_COMPLETED message
anymore. So the sequence is like:
RB[1] -> RB[2] ->  -> RB[n]
As a result, a application wait for the final query state message will hang
there.

Although we may also rely on RB[n] to notify the application to terminate
the query, what is the expected terminated state message we should rely
on?  It will be good to have an agreement on this.

Xiao

Re: Questions about recent state management changes in Drillbit

Posted by Parth Chandra <pc...@maprtech.com>.
Hi Xiao,

  I noticed the same thing last night. We should terminate based on Query
state being either COMPLETED or FAILED.

  Let me discuss this with Jacques.

Parth

On Tue, Dec 2, 2014 at 11:52 AM, Xiao Meng <xi...@gmail.com> wrote:

> Hi,
>
> We have observed recent changes in drill break the assumption of some C++
>  application (like querySubmitter and ODBC driver).
> We did a binary search on build version and the earliest change is:
>
> https://builds.apache.org/job/drill-scm/142/
>
> The change related should be:
> DRILL-1517: Update Foreman to improve state management
>
>
> Before  the Jenkin build 142, after the client send the query,  the
> UserServer will send the results back in a sequence like:
>
> RB[1] -> RB[2] ->  -> RB[n] -> QueryState_COMPLETED
>
> where RB[i] is the i-th record patch and RB[n] is the one has the flag
> is_last_chunk true.
> With patch DRILL-1305 (https://issues.apache.org/jira/browse/DRILL-1305),
> we let the C++ client consume the QueryState_COMPLETED message and get
> notified the query is completed.
>
> After build 142, we did not receive the QueryState_COMPLETED message
> anymore. So the sequence is like:
> RB[1] -> RB[2] ->  -> RB[n]
> As a result, a application wait for the final query state message will
> hang there.
>
> Although we may also rely on RB[n] to notify the application to terminate
> the query, what is the expected terminated state message we should rely
> on?  It will be good to have an agreement on this.
>
> Xiao
>