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

ASF GitHub Bot commented on TAJO-1412:
--------------------------------------

Github user navis commented on a diff in the pull request:

    https://github.com/apache/tajo/pull/432#discussion_r28479952
  
    --- Diff: tajo-core/src/main/java/org/apache/tajo/master/QueryInfo.java ---
    @@ -119,14 +119,37 @@ public int getQueryMasterClientPort() {
         return queryMasterClientPort;
       }
     
    -  public TajoProtos.QueryState getQueryState() {
    +  public synchronized TajoProtos.QueryState getQueryState() {
         return queryState;
       }
     
    -  public void setQueryState(TajoProtos.QueryState queryState) {
    +  public synchronized boolean isTerminalState() {
    +    return isTerminalState(queryState);
    +  }
    +
    +  public static boolean isTerminalState(TajoProtos.QueryState state) {
    +    return state == TajoProtos.QueryState.QUERY_FAILED ||
    +        state == TajoProtos.QueryState.QUERY_ERROR ||
    +        state == TajoProtos.QueryState.QUERY_KILLED ||
    +        state == TajoProtos.QueryState.QUERY_SUCCEEDED;
    +  }
    +
    +  public synchronized void setQueryState(TajoProtos.QueryState queryState) 
{
         this.queryState = queryState;
    +    notifyAll();
       }
     
    +  public synchronized boolean waitState(TajoProtos.QueryState expect, long 
timeout)
    +      throws InterruptedException {
    +    long prev = System.currentTimeMillis();
    +    while (timeout > 0 && expect != queryState && !isTerminalState()) {
    +      wait(timeout);
    --- End diff --
    
    wait(timeout) waits on lock for timeout msec. Isn't it?


> Add polling API in TajoMasterClientProtocol to wait result effectively
> ----------------------------------------------------------------------
>
>                 Key: TAJO-1412
>                 URL: https://issues.apache.org/jira/browse/TAJO-1412
>             Project: Tajo
>          Issue Type: Improvement
>          Components: client
>            Reporter: Navis
>            Assignee: Navis
>            Priority: Trivial
>
> Currently, client polls master node to acquire result frequently (every 500 
> msec), which seemed not small enough for light queries and not big enough for 
> heavy queries.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to