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

Stefania commented on CASSANDRA-7392:
-------------------------------------

[~aweisberg]: as discussed offline, I moved the time-out checks to the working 
threads therefore eliminating the need for any {{AtomicReference}} or 
contention. I've added a bounded queue of operations for passing timed-out 
operations to the monitoring thread, whose only job is now to log timed out 
operations periodically. We check the queue every 500 milliseconds and transfer 
the failed operations to a hash map indexed by name, just in case there are 
multiple queries for the exact same SQL during the reporting time (5 seconds). 
This could perhaps be skipped. I've also improved the overriding of the 
properties from unit tests and added an approximate time server to avoid 
calling {{System.currentTimeMillis()}} or {{System.nanoTime()}} every time we 
check if an operation has timed out in the working threads.

This is ready for another round of review.

> Abort in-progress queries that time out
> ---------------------------------------
>
>                 Key: CASSANDRA-7392
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7392
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Stefania
>            Priority: Critical
>             Fix For: 3.x
>
>
> Currently we drop queries that time out before we get to them (because node 
> is overloaded) but not queries that time out while being processed.  
> (Particularly common for index queries on data that shouldn't be indexed.)  
> Adding the latter and logging when we have to interrupt one gets us a poor 
> man's "slow query log" for free.



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

Reply via email to