Benedict created CASSANDRA-9593: ----------------------------------- Summary: Compaction may stall due to race condition Key: CASSANDRA-9593 URL: https://issues.apache.org/jira/browse/CASSANDRA-9593 Project: Cassandra Issue Type: Bug Components: Core Reporter: Benedict Priority: Minor Fix For: 2.2.x
If the maximum number of compactions are running, and they all terminate simultaneously, they can fail to submit any further compaction tasks. Further, since each only submits one on completion, we only need two of these to race with each other to reduce the number of active compactions below the configured concurrency level. There are a couple of ways to get around this. This simplest is to submit a task to another thread pool to perform the submitBackgroundTask(), but this may be unnecessarily delayed. Another is to maintain a separate count of active compaction tasks, that is decremented while the thread is still serving the request. A partial solution is to just discount the calling thread from the count of active tasks, so at least one of any competitors will win. The problem is mitigated considerably by CASSANDRA-9592, so there's no urgency to this. -- This message was sent by Atlassian JIRA (v6.3.4#6332)