Options

Is there a RUNTIMECAP value that only applies to query execution?

Hi All,

 

We are trying to set a query exection runtime cap of 30 seconds for query execution to avoid users putting unreasonable load on our Vertica cluster.

The problem is that when we do "SET SESSION RUNTIMECAP '30 seconds';" it not only times out if the query execution exceeds 30 seconds, it also times out when reading the resulting rows takes longer than 30 seconds.

So a fast query that executes in 1 second but which returns many rows which the client takes more than 30 seconds to consume times out.

 

FYI, we are consuming the rows through a JDBC resultset and returning the rows to a client over an HTTP connection.

Because we have already written an HTTP response code of 200 (OK) and we are streaming the resulting rows one at a time we have no further way to signal that the timeout occured.

 

We would like to not have a timeout on the streaming of the resultset, only on the SQL execution time.

Is there a way to differentiate between query execution time and resultset consumption time when setting Vertica timeouts?

 

Thanks,

 

Emanuel

Comments

  • Options

    Note that I've tried unsuccessfully to use the JDBC API Statement.setQueryTimeout(int timeoutSeconds).

    It doesn't appear that the Vertica JDBC driver is respecting the value specified there.

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file