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 2014/03/08 00:47:18 UTC

svn commit: r1575451 - in /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver: HRegionServer.java Leases.java

Author: stack
Date: Fri Mar  7 23:47:17 2014
New Revision: 1575451

URL: http://svn.apache.org/r1575451
Log:
HBASE-10663 Some code cleanup of class Leases and ScannerListener.leaseExpired

Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1575451&r1=1575450&r2=1575451&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Fri Mar  7 23:47:17 2014
@@ -2497,7 +2497,8 @@ public class HRegionServer implements Cl
               + s.getRegionInfo().getRegionNameAsString(), e);
         }
       } else {
-        LOG.info("Scanner " + this.scannerName + " lease expired");
+        LOG.warn("Scanner " + this.scannerName + " lease expired, but no related" +
+            " scanner found, hence no chance to close that related scanner!");
       }
     }
   }

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java?rev=1575451&r1=1575450&r2=1575451&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java Fri Mar  7 23:47:17 2014
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.regionse
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
 import org.apache.hadoop.hbase.util.HasThread;
 
 import java.util.ConcurrentModificationException;
@@ -132,7 +133,7 @@ public class Leases extends HasThread {
    * Shuts down this lease instance when all outstanding leases expire.
    * Like {@link #close()} but rather than violently end all leases, waits
    * first on extant leases to finish.  Use this method if the lease holders
-   * could loose data, leak locks, etc.  Presumes client has shutdown
+   * could lose data, leak locks, etc.  Presumes client has shutdown
    * allocation of new leases.
    */
   public void closeAfterLeasesExpire() {
@@ -151,7 +152,7 @@ public class Leases extends HasThread {
   }
 
   /**
-   * Obtain a lease.
+   * Create a lease and insert it to the map of leases.
    *
    * @param leaseName name of the lease
    * @param leaseTimeoutPeriod length of the lease in milliseconds
@@ -172,10 +173,10 @@ public class Leases extends HasThread {
     if (this.stopRequested) {
       return;
     }
-    lease.resetExpirationTime();
     if (leases.containsKey(lease.getLeaseName())) {
       throw new LeaseStillHeldException(lease.getLeaseName());
     }
+    lease.resetExpirationTime();
     leases.put(lease.getLeaseName(), lease);
   }
 
@@ -186,10 +187,11 @@ public class Leases extends HasThread {
    * @throws LeaseException
    */
   public void renewLease(final String leaseName) throws LeaseException {
+    if (this.stopRequested) {
+      return;
+    }
     Lease lease = leases.get(leaseName);
-    // We need to check to see if the remove is successful as the poll in the run()
-    // method could have completed between the get and the remove which will result
-    // in a corrupt leaseQueue.
+
     if (lease == null ) {
       throw new LeaseException("lease '" + leaseName +
           "' does not exist or has already expired");
@@ -208,8 +210,8 @@ public class Leases extends HasThread {
 
   /**
    * Remove named lease.
-   * Lease is removed from the list of leases and removed from the delay queue.
-   * Lease can be resinserted using {@link #addLease(Lease)}
+   * Lease is removed from the map of leases.
+   * Lease can be reinserted using {@link #addLease(Lease)}
    *
    * @param leaseName name of lease
    * @throws org.apache.hadoop.hbase.regionserver.LeaseException
@@ -224,7 +226,7 @@ public class Leases extends HasThread {
   }
 
   /**
-   * Thrown if we are asked create a lease but lease on passed name already
+   * Thrown if we are asked to create a lease but lease on passed name already
    * exists.
    */
   @SuppressWarnings("serial")
@@ -288,7 +290,7 @@ public class Leases extends HasThread {
     }
 
     public long getDelay(TimeUnit unit) {
-      return unit.convert(this.expirationTime - System.currentTimeMillis(),
+      return unit.convert(this.expirationTime - EnvironmentEdgeManager.currentTimeMillis(),
           TimeUnit.MILLISECONDS);
     }
 
@@ -303,7 +305,7 @@ public class Leases extends HasThread {
      * Resets the expiration time of the lease.
      */
     public void resetExpirationTime() {
-      this.expirationTime = System.currentTimeMillis() + this.leaseTimeoutPeriod;
+      this.expirationTime = EnvironmentEdgeManager.currentTimeMillis() + this.leaseTimeoutPeriod;
     }
   }
 }