You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ariel Weisberg (Jira)" <ji...@apache.org> on 2025/04/04 19:22:00 UTC

[jira] [Updated] (CASSANDRA-20480) Avoid system keyspace truncation record access blocking on interval tree builds

     [ https://issues.apache.org/jira/browse/CASSANDRA-20480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ariel Weisberg updated CASSANDRA-20480:
---------------------------------------
          Fix Version/s: 5.1
    Source Control Link: https://github.com/apache/cassandra/commit/7f1503d9c9b78512a34c38c0df98b4bd89538d09
             Resolution: Fixed
                 Status: Resolved  (was: Ready to Commit)

> 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
>          Components: Local/Other
>            Reporter: Matt Byrd
>            Assignee: Matt Byrd
>            Priority: Normal
>             Fix For: 5.1
>
>         Attachments: ci_summary.html
>
>          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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org