JFR profiles show significant synchronization contention on SystemKeyspace#getTruncationRecord(UUID) as part of committing PaxosState.
The SystemKeyspace truncationRecords map is a lazily initialized unmodifiable snapshot of the local node's truncated_at map. We now guard this with a read/write lock to optimistically allow concurrent reads, while falling back to most costly write lock and re-reading the local node's truncated_at from system tables when there are truncation modifications.
JFR profiles show significant synchronization contention on SystemKeyspace#getTruncationRecord(UUID) as part of committing PaxosState.
The SystemKeyspace truncationRecords map is a lazily initialized unmodifiable snapshot of the local node's truncated_at map. We now guard this with a read/write lock to optimistically allow concurrent reads, while falling back to most costly write lock and re-reading the local node's truncated_at from system tables when there are truncation modifications.
Contention back trace: