Author: eevans
Date: Thu Dec 15 15:05:08 2011
New Revision: 1214803

URL: http://svn.apache.org/viewvc?rev=1214803&view=rev
Log:
bump maximum cached prepared statements to 10,000 (from 50)

(and fix Map so that it is actually LRU)

Patch by evans for CASSANDRA-2475

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java?rev=1214803&r1=1214802&r2=1214803&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java Thu 
Dec 15 15:05:08 2011
@@ -43,7 +43,7 @@ import org.apache.cassandra.thrift.Inval
  */
 public class ClientState
 {
-    private static final int MAX_CACHE_PREPARED = 50;   // Ridiculously large, 
right?
+    private static final int MAX_CACHE_PREPARED = 10000;    // Enough to keep 
buggy clients from OOM'ing us
     private static Logger logger = LoggerFactory.getLogger(ClientState.class);
 
     // Current user for the session
@@ -53,7 +53,7 @@ public class ClientState
     private final List<Object> resource = new ArrayList<Object>();
 
     // An LRU map of prepared statements
-    private Map<Integer, CQLStatement> prepared = new HashMap<Integer, 
CQLStatement>() {
+    private Map<Integer, CQLStatement> prepared = new LinkedHashMap<Integer, 
CQLStatement>(16, 0.75f, true) {
         protected boolean removeEldestEntry(Map.Entry<Integer, CQLStatement> 
eldest) {
             return size() > MAX_CACHE_PREPARED;
         }


Reply via email to