[ https://issues.apache.org/jira/browse/CASSANDRA-20480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17938057#comment-17938057 ]
Matt Byrd commented on CASSANDRA-20480: --------------------------------------- PR for trunk here: https://github.com/apache/cassandra/pull/4007 > 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 > Priority: Normal > Time Spent: 10m > Remaining Estimate: 0h > > 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