Ivan Senic created CASSANDRA-17202: -------------------------------------- Summary: 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: Improvement Reporter: Ivan Senic Assignee: Ivan Senic
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 in my nerves as it's popping up on my flame graphs all the time. -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org