cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefania (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7392) Abort in-progress queries that time out
Date Fri, 25 Sep 2015 22:24:06 GMT


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:
>             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

View raw message