Follow up to
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.