You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by pr...@apache.org on 2012/04/05 01:51:43 UTC

svn commit: r1309627 - /incubator/flume/trunk/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java

Author: prasadm
Date: Wed Apr  4 23:51:43 2012
New Revision: 1309627

URL: http://svn.apache.org/viewvc?rev=1309627&view=rev
Log:
FLUME-1102: HDFSEventSink rollInterval is broken
(Mike Percy via Prasad Mujumdar)
.

Modified:
    incubator/flume/trunk/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java

Modified: incubator/flume/trunk/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java
URL: http://svn.apache.org/viewvc/incubator/flume/trunk/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java?rev=1309627&r1=1309626&r2=1309627&view=diff
==============================================================================
--- incubator/flume/trunk/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java (original)
+++ incubator/flume/trunk/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java Wed Apr  4 23:51:43 2012
@@ -48,7 +48,7 @@ public class BucketWriter {
   private FlumeFormatter formatter;
   private long eventCounter;
   private long processSize;
-  private long lastProcessTime;
+  private long lastRollTime;
   private long batchCounter;
   private String filePath;
   private long rollInterval;
@@ -63,7 +63,7 @@ public class BucketWriter {
   private void resetCounters() {
     eventCounter = 0;
     processSize = 0;
-    lastProcessTime = 0;
+    lastRollTime = System.currentTimeMillis();
     batchCounter = 0;
   }
 
@@ -149,7 +149,6 @@ public class BucketWriter {
 
     // update statistics
     processSize += e.getBody().length;
-    lastProcessTime = System.currentTimeMillis();
     eventCounter++;
     batchCounter++;
 
@@ -164,18 +163,22 @@ public class BucketWriter {
   }
 
   // check if time to rotate the file
-  public boolean shouldRotate() {
+  private boolean shouldRotate() {
     boolean doRotate = false;
 
-    if ((rollInterval > 0)
-        && (rollInterval < (System.currentTimeMillis() - lastProcessTime) / 1000))
+    long elapsed = (System.currentTimeMillis() - lastRollTime) / 1000L;
+    if ((rollInterval > 0) && (rollInterval <= elapsed)) {
+      LOG.debug("rolling: rollTime: {}, elapsed: {}", rollInterval, elapsed);
       doRotate = true;
+    }
+
     if ((rollCount > 0) && (rollCount <= eventCounter)) {
-      eventCounter = 0;
+      LOG.debug("rolling: rollCount: {}, events: {}", rollCount, eventCounter);
       doRotate = true;
     }
+
     if ((rollSize > 0) && (rollSize <= processSize)) {
-      processSize = 0;
+      LOG.debug("rolling: rollSize: {}, bytes: {}", rollSize, processSize);
       doRotate = true;
     }