cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Created] (CASSANDRA-4449) Make prepared statement global rather than connection based
Date Thu, 19 Jul 2012 09:00:38 GMT
Sylvain Lebresne created CASSANDRA-4449:

             Summary: Make prepared statement global rather than connection based
                 Key: CASSANDRA-4449
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Sylvain Lebresne

Currently, prepared statements are connection based. A client can only use a prepared statement
on the connection it prepared it on, and if you prepare the same prepared statement on multiple
connections, we'll keep multiple times the same prepared statement. This is potentially inefficient
but can also be fairly painful for client libraries with pool of connections (a.k.a all reasonable
client library ever) as this means you need to make sure you prepare statement on every connection
of the pool, including the connection that don't exist yet but might be created later.

This ticket suggests making prepared statement global (at least for CQL3), i.e. move them
out of ClientState. This will likely reduce the number of stored statement on a given node
quite a bit, since it's very likely that all clients to a given node will prepare the same
statements (and potentially on all of their connection with the node). And given that prepared
statement identifiers are the hashCode() of the string, this should be fairly trivial.

I will note that while I think using a hash of the string as identifier is a very good idea,
I don't know if the default java hashCode() is good enough. If that's a concern, maybe we
should use a safer (bug longer) hash like md5 or sha1. But we'd better do that now.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message