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

Eric Evans commented on CASSANDRA-2475:
---------------------------------------

bq. Thanks Eric, for all the help and attention to detail! I learned a lot. 
I'll be tuning up my formatter (Eclipse) to handle the nits of formatting and 
white-space. And I'll try to break things up much finer in future large patches

Thank you for knocking this out!

bq. I'm still a bit iffy about having the server ditching entries in the 
prepared statement map without regard to whether the client side closed the 
associated PreparedStatement. But like you, I think the chances of ever seeing 
50 entries without closing the connection are slim.

Think about it this way: whether or not the client removes unused entries, it's 
still prudent to put a limit on the number of statements we cache, otherwise a 
buggy client could eat up our heap.  And, if you're going to put something in 
place to evict, choosing the least recently accessed seems like the safest 
approach.

The question then becomes, how many can we afford to hang onto, and what is the 
likelihood that, short of a buggy client, we won't be able to accommodate 
everything needed.  Remember, this is only for the life of a connection, 
reconnecting starts a whole new Map.  So if an API to remove entries is 
ultimately of little to no benefit, then we should save everyone the trouble of 
implementing and maintaining it.

And, we could always take this to a wider audience to see what others think, 
but it's easier to add something like this later than it is to remove (or fix) 
it.

Also, 50 might not be the right number.  I basically pulled that out of my butt.
                
> Prepared statements
> -------------------
>
>                 Key: CASSANDRA-2475
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2475
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API, Core
>    Affects Versions: 1.0.5
>            Reporter: Eric Evans
>            Assignee: Rick Shaw
>            Priority: Minor
>              Labels: cql
>             Fix For: 1.1
>
>         Attachments: 2475-v1.patch, 2475-v2.patch, 2475-v3.1.patch, 
> 2475-v3.2-Thrift.patch, v1-0001-CASSANDRA-2475-prepared-statement-patch.txt, 
> v1-0002-regenerated-thrift-java.txt, 
> v2-0001-CASSANDRA-2475-rickshaw-2475-v3.1.patch.txt, 
> v2-0002-rickshaw-2475-v3.2-Thrift.patch-w-changes.txt, 
> v2-0003-eevans-increment-thrift-version-by-1-not-3.txt, 
> v2-0004-eevans-misc-cleanups.txt, 
> v2-0005-eevans-refactor-for-better-encapsulation-of-prepare.txt, 
> v2-0006-eevans-log-queries-at-TRACE.txt, 
> v2-0007-use-an-LRU-map-for-storage-of-prepared-statements.txt
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to