Matt Byrd created CASSANDRA-20480: ------------------------------------- Summary: Avoid system keyspace truncation record access blocking on interval tree builds Key: CASSANDRA-20480 URL: https://issues.apache.org/jira/browse/CASSANDRA-20480 Project: Apache Cassandra Issue Type: Improvement Reporter: Matt Byrd Assignee: Matt Byrd
A call to SystemKeyspace::removeEndpoint may block for extended periods of time behind an interval tree build since it does a blocking flush, explained in a bit more detail here: https://issues.apache.org/jira/browse/CASSANDRA-19597 This in turn takes the synchronized monitor lock on SystemKeyspace.class and blocks various other methods from executing, including in particular SystemKeyspace::getTruncationRecord, which is called on various hot paths to determine whether to drop/filter mutations, (Commitlog replay, Hints, Batchlog and also committing Paxos transactions) This can cause a continuous stream of timeouts while operations are on-going ( which are making calls to removeEndpoint). The vast majority of the time the truncation record would not have changed, since it's only updated when one truncates which is typically rare. If we factor out the synchronization of the truncation record to a monitor on a static field, we avoid this problem, whilst still preventing various concurrency problems when operating on the SystemKeyspace field truncationRecords. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org