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 2012/04/08 01:32:28 UTC

svn commit: r1310923 - /hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java

Author: stack
Date: Sat Apr  7 23:32:28 2012
New Revision: 1310923

URL: http://svn.apache.org/viewvc?rev=1310923&view=rev
Log:
HBASE-5618 SplitLogManager - prevent unnecessary attempts to resubmits

Modified:
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java?rev=1310923&r1=1310922&r2=1310923&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/SplitLogManager.java Sat Apr  7 23:32:28 2012
@@ -539,6 +539,7 @@ public class SplitLogManager extends Zoo
           version) == false) {
         LOG.debug("failed to resubmit task " + path +
             " version changed");
+        task.heartbeatNoDetails(EnvironmentEdgeManager.currentTimeMillis());
         return false;
       }
     } catch (NoNodeException e) {
@@ -546,6 +547,11 @@ public class SplitLogManager extends Zoo
           " task done (or forced done by removing the znode)");
       getDataSetWatchSuccess(path, null, Integer.MIN_VALUE);
       return false;
+    } catch (KeeperException.BadVersionException e) {
+      LOG.debug("failed to resubmit task " + path +
+          " version changed");
+      task.heartbeatNoDetails(EnvironmentEdgeManager.currentTimeMillis());
+      return false;
     } catch (KeeperException e) {
       tot_mgr_resubmit_failed.incrementAndGet();
       LOG.warn("failed to resubmit " + path, e);
@@ -716,7 +722,12 @@ public class SplitLogManager extends Zoo
 
   @Override
   public void nodeDataChanged(String path) {
-    if (tasks.get(path) != null || ZKSplitLog.isRescanNode(watcher, path)) {
+    Task task;
+    task = tasks.get(path);
+    if (task != null || ZKSplitLog.isRescanNode(watcher, path)) {
+      if (task != null) {
+        task.heartbeatNoDetails(EnvironmentEdgeManager.currentTimeMillis());
+      }
       getDataSetWatch(path, zkretries);
     }
   }
@@ -812,7 +823,11 @@ public class SplitLogManager extends Zoo
     }
 
     public boolean isUnassigned() {
-      return (last_update == -1);
+      return (cur_worker_name == null);
+    }
+
+    public void heartbeatNoDetails(long time) {
+      last_update = time;
     }
 
     public void heartbeat(long time, int version, String worker) {