Author: jgray
Date: Wed Sep 28 15:49:42 2011
New Revision: 1176930

URL: http://svn.apache.org/viewvc?rev=1176930&view=rev
Log:
HBASE-4488  Store could miss rows during flush (Lars H via jgray)

Modified:
    hbase/branches/0.92/CHANGES.txt
    
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java

Modified: hbase/branches/0.92/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.92/CHANGES.txt?rev=1176930&r1=1176929&r2=1176930&view=diff
==============================================================================
--- hbase/branches/0.92/CHANGES.txt (original)
+++ hbase/branches/0.92/CHANGES.txt Wed Sep 28 15:49:42 2011
@@ -304,6 +304,8 @@ Release 0.92.0 - Unreleased
                (Kannan Muthukkaruppan)
    HBASE-4455  Rolling restart RSs scenario, -ROOT-, .META. regions are lost in
                AssignmentManager (Ming Ma)
+   HBASE-4488  Store could miss rows during flush (Lars H via jgray)
+
 
   IMPROVEMENTS
    HBASE-3290  Max Compaction Size (Nicolas Spiegelberg via Stack)  

Modified: 
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=1176930&r1=1176929&r2=1176930&view=diff
==============================================================================
--- 
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
 (original)
+++ 
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
 Wed Sep 28 15:49:42 2011
@@ -40,7 +40,6 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HRegionInfo;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.RemoteExceptionHandler;
 import org.apache.hadoop.hbase.client.Scan;
@@ -198,8 +197,6 @@ public class Store implements HeapSize {
 
     // Check if this is in-memory store
     this.inMemory = family.isInMemory();
-    long maxFileSize = 0L;
-    HTableDescriptor hTableDescriptor = region.getTableDesc();
     this.blockingStoreFileCount =
       conf.getInt("hbase.hstore.blockingStoreFiles", 7);
 
@@ -499,7 +496,9 @@ public class Store implements HeapSize {
         writer.setTimeRangeTracker(snapshotTimeRangeTracker);
         try {
           List<KeyValue> kvs = new ArrayList<KeyValue>();
-          while (scanner.next(kvs)) {
+          boolean hasMore;
+          do {
+            hasMore = scanner.next(kvs);
             if (!kvs.isEmpty()) {
               for (KeyValue kv : kvs) {
                 writer.append(kv);
@@ -507,7 +506,7 @@ public class Store implements HeapSize {
               }
               kvs.clear();
             }
-          }
+          } while (hasMore);
         } finally {
           // Write out the log sequence number that corresponds to this output
           // hfile.  The hfile is current up to and including logCacheFlushId.


Reply via email to