You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/04/27 06:14:38 UTC

svn commit: r938317 - in /hadoop/hbase/trunk: CHANGES.txt core/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java

Author: stack
Date: Tue Apr 27 04:14:37 2010
New Revision: 938317

URL: http://svn.apache.org/viewvc?rev=938317&view=rev
Log:
HBASE-2393 ThriftServer instantiates a new HTable per request

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=938317&r1=938316&r2=938317&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Tue Apr 27 04:14:37 2010
@@ -535,6 +535,8 @@ Release 0.21.0 - Unreleased
                (Benoit Sigoure via Stack)
    HBASE-2488  Master should warn more loudly about unexpected events
                (Todd Lipcon via Stack)
+   HBASE-2393  ThriftServer instantiates a new HTable per request
+               (Bogdan DRAGU via Stack)
 
   NEW FEATURES
    HBASE-1961  HBase EC2 scripts

Modified: hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java?rev=938317&r1=938316&r2=938317&view=diff
==============================================================================
--- hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java (original)
+++ hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java Tue Apr 27 04:14:37 2010
@@ -103,6 +103,14 @@ public class ThriftServer {
     protected int nextScannerId = 0;
     protected HashMap<Integer, ResultScanner> scannerMap = null;
     
+    private static ThreadLocal<Map<String, HTable>> threadLocalTables = new ThreadLocal<Map<String, HTable>>() {
+      @Override
+      protected Map<String, HTable> initialValue() {
+        return new TreeMap<String, HTable>();
+      }
+
+    };
+    
     /**
      * Returns a list of all the column families for a given htable.
      * 
@@ -131,7 +139,12 @@ public class ThriftServer {
      */
     protected HTable getTable(final byte[] tableName) throws IOError,
         IOException {
-      return new HTable(this.conf, tableName);
+      String table = new String(tableName);
+      Map<String, HTable> tables = threadLocalTables.get();
+      if (!tables.containsKey(table)) {
+        tables.put(table, new HTable(conf, tableName));
+      }
+      return tables.get(table);
     }
     
     /**