You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2009/05/18 08:03:02 UTC

svn commit: r775822 - in /hadoop/hbase/trunk_on_hadoop-0.18.3: CHANGES.txt src/java/org/apache/hadoop/hbase/regionserver/HLog.java src/java/org/apache/hadoop/hbase/regionserver/LogRoller.java

Author: apurtell
Date: Mon May 18 06:03:01 2009
New Revision: 775822

URL: http://svn.apache.org/viewvc?rev=775822&view=rev
Log:
back out changeset for HBASE-1401

Modified:
    hadoop/hbase/trunk_on_hadoop-0.18.3/CHANGES.txt
    hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/HLog.java
    hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/LogRoller.java

Modified: hadoop/hbase/trunk_on_hadoop-0.18.3/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk_on_hadoop-0.18.3/CHANGES.txt?rev=775822&r1=775821&r2=775822&view=diff
==============================================================================
--- hadoop/hbase/trunk_on_hadoop-0.18.3/CHANGES.txt (original)
+++ hadoop/hbase/trunk_on_hadoop-0.18.3/CHANGES.txt Mon May 18 06:03:01 2009
@@ -256,8 +256,6 @@
                HLog#append?)
    HBASE-1429  Allow passing of a configuration object to HTablePool
    HBASE-1432  LuceneDocumentWrapper is not public
-   HBASE-1401  close HLog (and open new one) if there hasnt been edits in N
-               minutes/hours
 
   OPTIMIZATIONS
    HBASE-1412  Change values for delete column and column family in KeyValue

Modified: hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/HLog.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/HLog.java?rev=775822&r1=775821&r2=775822&view=diff
==============================================================================
--- hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/HLog.java (original)
+++ hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/HLog.java Mon May 18 06:03:01 2009
@@ -132,6 +132,7 @@
   private final AtomicLong logSeqNum = new AtomicLong(0);
 
   private volatile long filenum = -1;
+  private volatile long old_filenum = -1;
   
   private final AtomicInteger numEntries = new AtomicInteger(0);
 
@@ -273,10 +274,6 @@
    * @throws IOException
    */
   public byte [] rollWriter() throws FailedLogCloseException, IOException {
-    // Return if nothing to flush.
-    if (this.writer != null && this.numEntries.get() <= 0) {
-      return null;
-    }
     byte [] regionToFlush = null;
     this.cacheFlushLock.lock();
     try {
@@ -286,6 +283,9 @@
       synchronized (updateLock) {
         // Clean up current writer.
         Path oldFile = cleanupCurrentWriter(this.filenum);
+        if (this.filenum >= 0) {
+          this.old_filenum = this.filenum;
+        }
         this.filenum = System.currentTimeMillis();
         Path newPath = computeFilename(this.filenum);
         this.writer = SequenceFile.createWriter(this.fs, this.conf, newPath,
@@ -587,7 +587,7 @@
       }
     }
   }
-
+  
   private void requestLogRoll() {
     if (this.listener != null) {
       this.listener.logRollRequested();

Modified: hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/LogRoller.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/LogRoller.java?rev=775822&r1=775821&r2=775822&view=diff
==============================================================================
--- hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/LogRoller.java (original)
+++ hadoop/hbase/trunk_on_hadoop-0.18.3/src/java/org/apache/hadoop/hbase/regionserver/LogRoller.java Mon May 18 06:03:01 2009
@@ -40,32 +40,17 @@
   private final ReentrantLock rollLock = new ReentrantLock();
   private final AtomicBoolean rollLog = new AtomicBoolean(false);
   private final HRegionServer server;
-  private volatile long lastrolltime = System.currentTimeMillis();
-  // Period to roll log.
-  private final long rollperiod;
-
+  
   /** @param server */
   public LogRoller(final HRegionServer server) {
     super();
     this.server = server;
-    this.rollperiod =
-      this.server.conf.getLong("hbase.regionserver.logroll.period", 3600000);
   }
 
   @Override
   public void run() {
     while (!server.isStopRequested()) {
-      long now = System.currentTimeMillis();
-      boolean periodic = false;
       if (!rollLog.get()) {
-        periodic = (now - this.lastrolltime) < this.rollperiod;
-        if (periodic) {
-          // Time for periodic roll
-          if (LOG.isDebugEnabled()) {
-            LOG.debug("Hlog roll period " + this.rollperiod + "ms elapsed");
-          }
-          break;
-        }
         synchronized (rollLog) {
           try {
             rollLog.wait(server.threadWakeFrequency);
@@ -77,7 +62,6 @@
       }
       rollLock.lock();          // Don't interrupt us. We're working
       try {
-        this.lastrolltime = now;
         byte [] regionToFlush = server.getLog().rollWriter();
         if (regionToFlush != null) {
           scheduleFlush(regionToFlush);
@@ -106,7 +90,7 @@
     }
     LOG.info("LogRoller exiting.");
   }
-
+  
   private void scheduleFlush(final byte [] region) {
     boolean scheduled = false;
     HRegion r = this.server.getOnlineRegion(region);
@@ -130,7 +114,7 @@
       rollLog.notifyAll();
     }
   }
-
+  
   /**
    * Called by region server to wake up this thread if it sleeping.
    * It is sleeping if rollLock is not held.
@@ -143,4 +127,4 @@
       rollLock.unlock();
     }
   }
-}
\ No newline at end of file
+}