You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2014/01/04 05:49:30 UTC

svn commit: r1555321 - in /hbase/branches/0.94/src: main/java/org/apache/hadoop/hbase/regionserver/Store.java test/java/org/apache/hadoop/hbase/regionserver/TestStore.java

Author: larsh
Date: Sat Jan  4 04:49:29 2014
New Revision: 1555321

URL: http://svn.apache.org/r1555321
Log:
HBASE-10279 TestStore.testDeleteExpiredStoreFiles is flaky

Modified:
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
    hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=1555321&r1=1555320&r2=1555321&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java Sat Jan  4 04:49:29 2014
@@ -1316,7 +1316,7 @@ public class Store extends SchemaConfigu
     }
     // TODO: Use better method for determining stamp of last major (HBASE-2990)
     long lowTimestamp = getLowestTimestamp(filesToCompact);
-    long now = System.currentTimeMillis();
+    long now = EnvironmentEdgeManager.currentTimeMillis();
     if (lowTimestamp > 0l && lowTimestamp < (now - mcTime)) {
       // Major compaction time has elapsed.
       if (filesToCompact.size() == 1) {

Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java?rev=1555321&r1=1555320&r2=1555321&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java Sat Jan  4 04:49:29 2014
@@ -151,6 +151,8 @@ public class TestStore extends TestCase 
   }
 
   public void testDeleteExpiredStoreFiles() throws Exception {
+    ManualEnvironmentEdge mee = new ManualEnvironmentEdge();
+    EnvironmentEdgeManagerTestHelper.injectEdge(mee);
     int storeFileNum = 4;
     int ttl = 4;
     
@@ -172,8 +174,10 @@ public class TestStore extends TestCase 
       this.store.add(new KeyValue(row, family, qf2, timeStamp, (byte[]) null));
       this.store.add(new KeyValue(row, family, qf3, timeStamp, (byte[]) null));
       flush(i);
-      Thread.sleep(sleepTime);
+      mee.incValue(sleepTime);
     }
+    // move time forward a bit more, so that the first file is expired
+    mee.incValue(1);
 
     // Verify the total number of store files
     assertEquals(storeFileNum, this.store.getStorefiles().size());
@@ -187,7 +191,7 @@ public class TestStore extends TestCase 
       // If not the first compaction, there is another empty store file,
       assertEquals(Math.min(i, 2), cr.getFiles().size());
       for (int j = 0; i < cr.getFiles().size(); j++) {
-        assertTrue(cr.getFiles().get(j).getReader().getMaxTimestamp() < (System
+        assertTrue(cr.getFiles().get(j).getReader().getMaxTimestamp() < (EnvironmentEdgeManager
             .currentTimeMillis() - this.store.scanInfo.getTtl()));
       }
       // Verify that the expired store file is compacted to an empty store file.
@@ -197,7 +201,7 @@ public class TestStore extends TestCase 
           .getEntries());
 
       // Let the next store file expired.
-      Thread.sleep(sleepTime);
+      mee.incValue(sleepTime);
     }
   }