[ 
https://issues.apache.org/jira/browse/CASSANDRA-17202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17723919#comment-17723919
 ] 

Brandon Williams edited comment on CASSANDRA-17202 at 5/18/23 1:53 PM:
-----------------------------------------------------------------------

The one odd 3.11 failure is actually my fault and fixed 
[here|https://github.com/apache/cassandra-dtest/commit/39c1c113e101b437ec66aaa8566e5c9c9e67b2ff].
  Everything else looks good to me, +1.


was (Author: brandon.williams):
The one add 3.11 failure is actually my fault and fixed 
[here|https://github.com/apache/cassandra-dtest/commit/39c1c113e101b437ec66aaa8566e5c9c9e67b2ff].
  Everything else looks good to me, +1.

> Avoid unnecessary String.format in QueryProcessor when getting stored 
> prepared statement 
> -----------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17202
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17202
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Messaging/Client
>            Reporter: Ivan Senic
>            Assignee: Ivan Senic
>            Priority: Low
>             Fix For: 3.11.x, 4.0.x, 4.1.x, 5.x
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> In the _QueryProcessor#getStoredPreparedStatement_ if the statement is found 
> in the prepared statements cache, there is always unnecessary string creation 
> using String.format in order to execute the _checkTrue_ assertion. The string 
> construction is necessary only when the queries are not equal.
> {code:java}
> public static ResultMessage.Prepared getStoredPreparedStatement(String 
> queryString, String clientKeyspace)
> throws InvalidRequestException
> {
>     MD5Digest statementId = computeId(queryString, clientKeyspace);
>     Prepared existing = preparedStatements.getIfPresent(statementId);
>     if (existing == null)
>         return null;
>     checkTrue(queryString.equals(existing.rawCQLStatement),
>             String.format("MD5 hash collision: query with the same MD5 hash 
> was already prepared. \n Existing: '%s'", existing.rawCQLStatement));
>  {code}
> Hopefully the JIT can optimize this once the _checkTrue_ is inlined, but it's 
> getting on my nerves as it's popping up on my flame graphs all the time.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to