accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ktur...@apache.org
Subject svn commit: r1337210 - in /accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client: admin/TableOperationsImpl.java mapreduce/InputFormatBase.java
Date Fri, 11 May 2012 15:29:29 GMT
Author: kturner
Date: Fri May 11 15:29:28 2012
New Revision: 1337210

URL: http://svn.apache.org/viewvc?rev=1337210&view=rev
Log:
ACCUMULO-591 Clear tablet location cache before computing map reduce input splits

Modified:
    accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
    accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java

Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java?rev=1337210&r1=1337209&r2=1337210&view=diff
==============================================================================
--- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
(original)
+++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java
Fri May 11 15:29:28 2012
@@ -848,6 +848,8 @@ public class TableOperationsImpl extends
     Map<String,Map<KeyExtent,List<Range>>> binnedRanges = new HashMap<String,Map<KeyExtent,List<Range>>>();
     String tableId = Tables.getTableId(instance, tableName);
     TabletLocator tl = TabletLocator.getInstance(instance, credentials, new Text(tableId));
+    // its possible that the cache could contain complete, but old information about a tables
tablets... so clear it
+    tl.invalidateCache();
     while (!tl.binRanges(Collections.singletonList(range), binnedRanges).isEmpty()) {
       if (!Tables.exists(instance, tableId))
         throw new TableDeletedException(tableId);
@@ -858,6 +860,7 @@ public class TableOperationsImpl extends
       // sleep randomly between 100 and 200ms
       UtilWaitThread.sleep(100 + (int) (Math.random() * 100));
       binnedRanges.clear();
+      tl.invalidateCache();
     }
     
     // group key extents to get <= maxSplits

Modified: accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
URL: http://svn.apache.org/viewvc/accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java?rev=1337210&r1=1337209&r2=1337210&view=diff
==============================================================================
--- accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
(original)
+++ accumulo/trunk/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
Fri May 11 15:29:28 2012
@@ -963,6 +963,8 @@ public abstract class InputFormatBase<K,
         Instance instance = getInstance(conf);
         String tableId = null;
         tl = getTabletLocator(conf);
+        // its possible that the cache could contain complete, but old information about
a tables tablets... so clear it
+        tl.invalidateCache();
         while (!tl.binRanges(ranges, binnedRanges).isEmpty()) {
           if (!(instance instanceof MockInstance)) {
             if (tableId == null)
@@ -975,6 +977,7 @@ public abstract class InputFormatBase<K,
           binnedRanges.clear();
           log.warn("Unable to locate bins for specified ranges. Retrying.");
           UtilWaitThread.sleep(100 + (int) (Math.random() * 100)); // sleep randomly between
100 and 200 ms
+          tl.invalidateCache();
         }
       }
     } catch (Exception e) {



Mime
View raw message