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

ASF GitHub Bot commented on DRILL-3640:
---------------------------------------

Github user kkhatua commented on the issue:

    https://github.com/apache/drill/pull/858
  
    Wouldn't a query cancellation automatically interrupt those potentially 
blocking operations? I'm simply looking up whether the trigger was a timeout 
DrillStatement.isTimedOut() to decide if the returning exception is a 
SqlTimeoutExcp.
    
    The extra thread (though mostly sleeping) didn't seem like a huge cost 
considering that the timeout is at the granularity of seconds.
    
    I ran a small custom JDBC client application to test this theory. Running 
longevity and concurrency testing worked well when testing for timeouts. For 
timeouts as low as 1 second for queries that needed to do lot of back end 
processing before returning rows much later (like a massive join), I noticed 
that we caught underlying exceptions as the timeouts during the 'executeQuery' 
call itself. If I were to not go the route of issuing a Statement.cancel() but 
relying primarily on the DrillCursor, unless I put in some mechanism of 
constantly polling for the out-of-time state of the clock. I think then I also 
need to cancel then cancel all operations from the level of the DrillCursor in 
both directions (up to the Statement and down to the fragments). All this 
versus issuing a Statement.cancel() that effectively cancels all the operations 
down to the fragment level. 
    
    I am now wondering whether I missied a corner case which will be addressed 
by doing the timeout in the DrillCursor?


> Drill JDBC driver support Statement.setQueryTimeout(int)
> --------------------------------------------------------
>
>                 Key: DRILL-3640
>                 URL: https://issues.apache.org/jira/browse/DRILL-3640
>             Project: Apache Drill
>          Issue Type: New Feature
>          Components: Client - JDBC
>    Affects Versions: 1.2.0
>            Reporter: Chun Chang
>            Assignee: Kunal Khatua
>             Fix For: 1.11.0
>
>
> It would be nice if we have this implemented. Run away queries can be 
> automatically canceled by setting the timeout. 
> java.sql.SQLFeatureNotSupportedException: Setting network timeout is not 
> supported.
>       at 
> org.apache.drill.jdbc.impl.DrillStatementImpl.setQueryTimeout(DrillStatementImpl.java:152)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to