You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benjamin Lerer (Jira)" <ji...@apache.org> on 2021/07/08 13:24:00 UTC
[jira] [Commented] (CASSANDRA-16072) Reduce thread contention in
CommitLogSegment and HintsBuffer by rewriting CAS loops to atomic adds
[ https://issues.apache.org/jira/browse/CASSANDRA-16072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17377388#comment-17377388 ]
Benjamin Lerer commented on CASSANDRA-16072:
--------------------------------------------
Sorry for the delay [~mck]. The patch looks good to me.
> Reduce thread contention in CommitLogSegment and HintsBuffer by rewriting CAS loops to atomic adds
> --------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-16072
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16072
> Project: Cassandra
> Issue Type: Improvement
> Components: Consistency/Hints, Local/Commit Log
> Reporter: Michael Semb Wever
> Assignee: Michael Semb Wever
> Priority: Normal
> Fix For: 3.11.x, 4.0.x
>
>
> Follow up to CASSANDRA-15922
> Both CommitLogSegment and HintsBuffer use AtomicIntegers for the current offset when allocating. Like in CASSANDRA\-15922 the loops on {{.compareAndSet(..)}} can be replaced with atomic adds using the {{. getAndAdd(..)}} method.
> In highly contended environments the CAS failures can be high, starving writes in a running Cassandra node. On the same cluster CASSANDRA\-15922 was found, after CASSANDRA\-15922's fix was deployed, there was still problems around commit log flushing and hints. No flamegraph was collected that demonstrated the thread contention as clearly as was found in CASSANDRA\-15922, but the performance fix proposed here hopefully is obvious enough.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org