Hi Wail,

On 30 Dec 2015, at 7:07, Wail Alkowaileet wrote:

Dears,

First, sorry for the many emails ...

I have a question about the RESTAPI. I see that Async query get blocked
until the job is completed ... is that intentional ?

if so ... this can fail a job if it takes too long (> HTTP timeout).

in QueryTranslator:
switch (resultDelivery) {
                  case ASYNC:
                      JSONArray handle = new JSONArray();
                      handle.put(jobId.getId());

handle.put(metadataProvider.getResultSetId().getId());
                      response.put("handle", handle);
                      sessionConfig.out().print(response);
                      sessionConfig.out().flush();
hcc.waitForCompletion(jobId); *<-- should we remove
this one ?*
                      break;

As a result, I've never seen the status as RUNNING. it's always SUCCESS or
some sort of runtime exception payload. Even for query takes multiple
seconds.

Reading the code I was assuming that the flushing of the output stream would return the result to the client. But if you don’t see control begin returned to the client, then that’s probably not the case :)

Removing waitForCompletion will need some modifications on the Result
framework interfaces to report the exceptions when query status = FAILURE
instead of throwing it to a finished HTTP session.

Before reporting a JIRA issue, is there any "internal consequences" if the
client didn't wait? I didn't see any issue from my brief testings ...

I’m not sure I understand the suggested changes to the result framework sufficiently. But I do think that we need to maintain control of the lifecycle of the Hyracks job and so just removing the waiting doesn’t sound right to me. I think that it’d be good to file an issue stating the problem clearly and to potentially add a solution proposal as a first comment.

Cheers,
Till

Reply via email to