Michael Semb Wever created CASSANDRA-16072:
----------------------------------------------
Summary: 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
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: [email protected]
For additional commands, e-mail: [email protected]