hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From te...@apache.org
Subject svn commit: r1478585 - /hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
Date Thu, 02 May 2013 21:56:09 GMT
Author: tedyu
Date: Thu May  2 21:56:09 2013
New Revision: 1478585

URL: http://svn.apache.org/r1478585
Log:
HBASE-8346 Prefetching .META. rows in case only when useCache is set to true (Himanshu)


Modified:
    hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java

Modified: hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java?rev=1478585&r1=1478584&r2=1478585&view=diff
==============================================================================
--- hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
(original)
+++ hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
Thu May  2 21:56:09 2013
@@ -1149,26 +1149,28 @@ public class HConnectionManager {
           // region at the same time. The first will load the meta region and
           // the second will use the value that the first one found.
           synchronized (regionLockObject) {
-            // If the parent table is META, we may want to pre-fetch some
-            // region info into the global region cache for this table.
-            if (Bytes.equals(parentTable, HConstants.META_TABLE_NAME) &&
-                (getRegionCachePrefetch(tableName)) )  {
-              prefetchRegionCache(tableName, row);
-            }
-
             // Check the cache again for a hit in case some other thread made the
-            // same query while we were waiting on the lock. If not supposed to
-            // be using the cache, delete any existing cached location so it won't
-            // interfere.
+            // same query while we were waiting on the lock. 
             if (useCache) {
               location = getCachedLocation(tableName, row);
               if (location != null) {
                 return location;
               }
+              // If the parent table is META, we may want to pre-fetch some
+              // region info into the global region cache for this table.
+              if (Bytes.equals(parentTable, HConstants.META_TABLE_NAME)
+                  && (getRegionCachePrefetch(tableName))) {
+                prefetchRegionCache(tableName, row);
+              }
+              location = getCachedLocation(tableName, row);
+              if (location != null) {
+                return location;
+              }
             } else {
+              // If we are not supposed to be using the cache, delete any existing cached
location
+              // so it won't interfere.
               forceDeleteCachedLocation(tableName, row);
             }
-
             // Query the meta region for the location of the meta region
             regionInfoRow = ProtobufUtil.getRowOrBefore(server,
               metaLocation.getRegionInfo().getRegionName(), metaKey,



Mime
View raw message