Dmitry Konstantinov created CASSANDRA-20804: -----------------------------------------------
Summary: Optimize DataPlacement lookup by ReplicationParams Key: CASSANDRA-20804 URL: https://issues.apache.org/jira/browse/CASSANDRA-20804 Project: Apache Cassandra Issue Type: Improvement Components: Consistency/Coordination, Transactional Cluster Metadata Reporter: Dmitry Konstantinov Assignee: Dmitry Konstantinov Attachments: image-2025-07-30-18-39-40-063.png When we execute a plain write to identify replicas we do several lookups from ClusterMetadata.placements map using ReplicationParams. Equals and hashcode for ReplicationParams objects are not very cheap, so there is a noticible overhead for this logic in CPU profile (0.77% of overall CPU usage for a plain write Cassandra stress test): !image-2025-07-30-18-39-40-063.png|width=700! To reduce it the following optimisations can be applied: # Avoid double lookup in of the same DataPlacement in forNonLocalStrategyTokenRead and forNonLocalStrategyTokenWrite # Memorize hashCode value # Deduplicate ReplicationParams to use the same objects in DataPlacements and KeyspaceMetadata to use the fast == path in the equals The last two optimizations are safe because ReplicationParams is immutable. Note: it is related to TCM logic, so it is trunk only issue. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org