You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2013/07/23 19:38:15 UTC
svn commit: r1506176 - in /hbase/branches/0.94/src:
main/java/org/apache/hadoop/hbase/master/cleaner/
main/java/org/apache/hadoop/hbase/master/snapshot/
main/java/org/apache/hadoop/hbase/replication/master/
test/java/org/apache/hadoop/hbase/master/clea...
Author: tedyu
Date: Tue Jul 23 17:38:15 2013
New Revision: 1506176
URL: http://svn.apache.org/r1506176
Log:
HBASE-9019 Port HBASE-8690: Reduce unnecessary getFileStatus hdfs calls in TTL hfile and hlog cleanners to 0.94 (Ted Yu)
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotLogCleaner.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotHFileCleaner.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotLogCleaner.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/CheckedArchivingHFileCleaner.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.java Tue Jul 23 17:38:15 2013
@@ -18,6 +18,7 @@
package org.apache.hadoop.hbase.master.cleaner;
import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.BaseConfigurable;
@@ -40,17 +41,17 @@ import org.apache.hadoop.hbase.BaseConfi
public abstract class BaseLogCleanerDelegate extends BaseConfigurable implements FileCleanerDelegate {
@Override
- public boolean isFileDeletable(Path file) {
- return isLogDeletable(file);
+ public boolean isFileDeletable(FileStatus fStat) {
+ return isLogDeletable(fStat);
}
/**
* Should the master delete the log or keep it?
* <p>
- * Implementing classes should override {@link #isFileDeletable(Path)} instead.
- * @param filePath full path to log.
+ * Implementing classes should override {@link #isFileDeletable(FileStatus)} instead.
+ * @param fStat file status of the file
* @return true if the log is deletable, false if not
*/
@Deprecated
- public abstract boolean isLogDeletable(Path filePath);
-}
\ No newline at end of file
+ public abstract boolean isLogDeletable(FileStatus fStat);
+}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java Tue Jul 23 17:38:15 2013
@@ -123,7 +123,7 @@ public abstract class CleanerChore<T ext
for (FileStatus file : files) {
try {
if (file.isDir()) checkAndDeleteDirectory(file.getPath());
- else checkAndDelete(file.getPath());
+ else checkAndDelete(file);
} catch (IOException e) {
e = RemoteExceptionHandler.checkIOException(e);
LOG.warn("Error while cleaning the logs", e);
@@ -174,7 +174,7 @@ public abstract class CleanerChore<T ext
}
}
// otherwise we can just check the file
- else if (!checkAndDelete(path)) {
+ else if (!checkAndDelete(child)) {
canDeleteThis = false;
}
}
@@ -200,11 +200,12 @@ public abstract class CleanerChore<T ext
/**
* Run the given file through each of the cleaners to see if it should be deleted, deleting it if
* necessary.
- * @param filePath path of the file to check (and possibly delete)
+ * @param fStat path of the file to check (and possibly delete)
* @throws IOException if cann't delete a file because of a filesystem issue
* @throws IllegalArgumentException if the file is a directory and has children
*/
- private boolean checkAndDelete(Path filePath) throws IOException, IllegalArgumentException {
+ private boolean checkAndDelete(FileStatus fStat) throws IOException, IllegalArgumentException {
+ Path filePath = fStat.getPath();
// first check to see if the path is valid
if (!validate(filePath)) {
LOG.warn("Found a wrongly formatted file: " + filePath.getName() + " deleting it.");
@@ -222,7 +223,7 @@ public abstract class CleanerChore<T ext
return false;
}
- if (!cleaner.isFileDeletable(filePath)) {
+ if (!cleaner.isFileDeletable(fStat)) {
// this file is not deletable, then we are done
if (LOG.isTraceEnabled()) {
LOG.trace(filePath + " is not deletable according to:" + cleaner);
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.java Tue Jul 23 17:38:15 2013
@@ -19,7 +19,7 @@ package org.apache.hadoop.hbase.master.c
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.conf.Configurable;
-import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.hbase.Stoppable;
/**
@@ -32,8 +32,8 @@ public interface FileCleanerDelegate ext
/**
* Should the master delete the file or keep it?
- * @param file full path to the file to check
+ * @param fStat file status of the file to check
* @return <tt>true</tt> if the file is deletable, <tt>false</tt> if not
*/
- public boolean isFileDeletable(Path file);
-}
\ No newline at end of file
+ public boolean isFileDeletable(FileStatus fStat);
+}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.java Tue Jul 23 17:38:15 2013
@@ -25,6 +25,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@ -48,9 +49,9 @@ public class HFileLinkCleaner extends Ba
private FileSystem fs = null;
@Override
- public synchronized boolean isFileDeletable(Path filePath) {
+ public synchronized boolean isFileDeletable(FileStatus fStat) {
if (this.fs == null) return false;
-
+ Path filePath = fStat.getPath();
// HFile Link is always deletable
if (HFileLink.isHFileLink(filePath)) return true;
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.java Tue Jul 23 17:38:15 2013
@@ -17,15 +17,11 @@
*/
package org.apache.hadoop.hbase.master.cleaner;
-import java.io.IOException;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
/**
@@ -41,7 +37,6 @@ public class TimeToLiveHFileCleaner exte
private static final long DEFAULT_TTL = 60000 * 5;
// Configured time a hfile can be kept after it was moved to the archive
private long ttl;
- private FileSystem fs;
@Override
public void setConf(Configuration conf) {
@@ -50,45 +45,19 @@ public class TimeToLiveHFileCleaner exte
}
@Override
- public boolean isFileDeletable(Path filePath) {
- if (!instantiateFS()) {
- return false;
- }
- long time = 0;
+ public boolean isFileDeletable(FileStatus fStat) {
long currentTime = EnvironmentEdgeManager.currentTimeMillis();
- try {
- FileStatus fStat = fs.getFileStatus(filePath);
- time = fStat.getModificationTime();
- } catch (IOException e) {
- LOG.error("Unable to get modification time of file " + filePath.getName()
- + ", not deleting it.", e);
- return false;
- }
+ long time = fStat.getModificationTime();
long life = currentTime - time;
if (LOG.isTraceEnabled()) {
LOG.trace("HFile life:" + life + ", ttl:" + ttl + ", current:" + currentTime + ", from: "
+ time);
}
if (life < 0) {
- LOG.warn("Found a log (" + filePath + ") newer than current time (" + currentTime + " < "
- + time + "), probably a clock skew");
+ LOG.warn("Found a hfile (" + fStat.getPath() + ") newer than current time (" + currentTime
+ + " < " + time + "), probably a clock skew");
return false;
}
return life > ttl;
}
-
- /**
- * setup the filesystem, if it hasn't been already
- */
- private synchronized boolean instantiateFS() {
- if (this.fs == null) {
- try {
- this.fs = FileSystem.get(this.getConf());
- } catch (IOException e) {
- LOG.error("Couldn't instantiate the file system, not deleting file, just incase");
- return false;
- }
- }
- return true;
- }
-}
\ No newline at end of file
+}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.java Tue Jul 23 17:38:15 2013
@@ -17,14 +17,12 @@
*/
package org.apache.hadoop.hbase.master.cleaner;
-import java.io.IOException;
-
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.conf.Configuration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
/**
* Log cleaner that uses the timestamp of the hlog to determine if it should
@@ -38,21 +36,18 @@ public class TimeToLiveLogCleaner extend
private boolean stopped = false;
@Override
- public boolean isLogDeletable(Path filePath) {
- long time = 0;
- long currentTime = System.currentTimeMillis();
- try {
- FileStatus fStat = filePath.getFileSystem(this.getConf()).getFileStatus(filePath);
- time = fStat.getModificationTime();
- } catch (IOException e) {
- LOG.error("Unable to get modification time of file " + filePath.getName() +
- ", not deleting it.", e);
- return false;
- }
+ public boolean isLogDeletable(FileStatus fStat) {
+ long currentTime = EnvironmentEdgeManager.currentTimeMillis();
+ long time = fStat.getModificationTime();
long life = currentTime - time;
+
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Log life:" + life + ", ttl:" + ttl + ", current:" + currentTime + ", from: "
+ + time);
+ }
if (life < 0) {
- LOG.warn("Found a log newer than current time, " +
- "probably a clock skew");
+ LOG.warn("Found a log (" + fStat.getPath() + ") newer than current time (" + currentTime
+ + " < " + time + "), probably a clock skew");
return false;
}
return life > ttl;
@@ -74,4 +69,4 @@ public class TimeToLiveLogCleaner extend
public boolean isStopped() {
return this.stopped;
}
-}
\ No newline at end of file
+}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.java Tue Jul 23 17:38:15 2013
@@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFac
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.master.cleaner.BaseHFileCleanerDelegate;
@@ -54,12 +55,12 @@ public class SnapshotHFileCleaner extend
private SnapshotFileCache cache;
@Override
- public synchronized boolean isFileDeletable(Path filePath) {
+ public synchronized boolean isFileDeletable(FileStatus fStat) {
try {
- return !cache.contains(filePath.getName());
+ return !cache.contains(fStat.getPath().getName());
} catch (IOException e) {
- LOG.error("Exception while checking if:" + filePath + " was valid, keeping it just in case.",
- e);
+ LOG.error("Exception while checking if:" + fStat.getPath()
+ + " was valid, keeping it just in case.", e);
return false;
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotLogCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotLogCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotLogCleaner.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotLogCleaner.java Tue Jul 23 17:38:15 2013
@@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFac
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.master.cleaner.BaseLogCleanerDelegate;
@@ -53,13 +54,13 @@ public class SnapshotLogCleaner extends
private SnapshotFileCache cache;
@Override
- public synchronized boolean isLogDeletable(Path filePath) {
+ public synchronized boolean isLogDeletable(FileStatus fStat) {
try {
if (null == cache) return false;
- return !cache.contains(filePath.getName());
+ return !cache.contains(fStat.getPath().getName());
} catch (IOException e) {
- LOG.error("Exception while checking if:" + filePath + " was valid, keeping it just in case.",
- e);
+ LOG.error("Exception while checking if:" + fStat.getPath()
+ + " was valid, keeping it just in case.", e);
return false;
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java Tue Jul 23 17:38:15 2013
@@ -22,6 +22,7 @@ package org.apache.hadoop.hbase.replicat
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.Abortable;
import org.apache.hadoop.hbase.HConstants;
@@ -53,7 +54,7 @@ public class ReplicationLogCleaner exten
public ReplicationLogCleaner() {}
@Override
- public boolean isLogDeletable(Path filePath) {
+ public boolean isLogDeletable(FileStatus fStat) {
try {
if (!zkHelper.getReplication()) {
@@ -69,7 +70,7 @@ public class ReplicationLogCleaner exten
if (this.getConf() == null) {
return true;
}
- String log = filePath.getName();
+ String log = fStat.getPath().getName();
// If we saw the hlog previously, let's consider it's still used
// At some point in the future we will refresh the list and it will be gone
if (this.hlogs.contains(log)) {
@@ -170,4 +171,4 @@ public class ReplicationLogCleaner exten
public boolean isAborted() {
return this.aborted;
}
-}
\ No newline at end of file
+}
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestCleanerChore.java Tue Jul 23 17:38:15 2013
@@ -25,6 +25,7 @@ import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseTestingUtility;
@@ -137,13 +138,15 @@ public class TestCleanerChore {
Path parent = new Path(testDir, "parent");
Path file = new Path(parent, "someFile");
fs.mkdirs(parent);
+ assertTrue("Test parent didn't get created.", fs.exists(parent));
// touch a new file
fs.create(file).close();
assertTrue("Test file didn't get created.", fs.exists(file));
-
+
+ FileStatus fStat = fs.getFileStatus(parent);
chore.chore();
// make sure we never checked the directory
- Mockito.verify(spy, Mockito.never()).isFileDeletable(parent);
+ Mockito.verify(spy, Mockito.never()).isFileDeletable(fStat);
Mockito.reset(spy);
}
@@ -210,7 +213,7 @@ public class TestCleanerChore {
FSUtils.logFileSystemState(fs, testDir, LOG);
return (Boolean) invocation.callRealMethod();
}
- }).when(spy).isFileDeletable(Mockito.any(Path.class));
+ }).when(spy).isFileDeletable(Mockito.any(FileStatus.class));
// run the chore
chore.chore();
@@ -219,7 +222,7 @@ public class TestCleanerChore {
assertTrue("Added file unexpectedly deleted", fs.exists(addedFile));
assertTrue("Parent directory deleted unexpectedly", fs.exists(parent));
assertFalse("Original file unexpectedly retained", fs.exists(file));
- Mockito.verify(spy, Mockito.times(1)).isFileDeletable(Mockito.any(Path.class));
+ Mockito.verify(spy, Mockito.times(1)).isFileDeletable(Mockito.any(FileStatus.class));
Mockito.reset(spy);
}
@@ -268,7 +271,7 @@ public class TestCleanerChore {
FSUtils.logFileSystemState(fs, testDir, LOG);
return (Boolean) invocation.callRealMethod();
}
- }).when(spy).isFileDeletable(Mockito.any(Path.class));
+ }).when(spy).isFileDeletable(Mockito.any(FileStatus.class));
// attempt to delete the directory, which
if (chore.checkAndDeleteDirectory(parent)) {
@@ -280,7 +283,7 @@ public class TestCleanerChore {
assertTrue("Added file unexpectedly deleted", fs.exists(racyFile));
assertTrue("Parent directory deleted unexpectedly", fs.exists(parent));
assertFalse("Original file unexpectedly retained", fs.exists(file));
- Mockito.verify(spy, Mockito.times(1)).isFileDeletable(Mockito.any(Path.class));
+ Mockito.verify(spy, Mockito.times(1)).isFileDeletable(Mockito.any(FileStatus.class));
}
private static class AllValidPaths extends CleanerChore<BaseHFileCleanerDelegate> {
@@ -299,14 +302,14 @@ public class TestCleanerChore {
public static class AlwaysDelete extends BaseHFileCleanerDelegate {
@Override
- public boolean isFileDeletable(Path file) {
+ public boolean isFileDeletable(FileStatus fStat) {
return true;
}
}
public static class NeverDelete extends BaseHFileCleanerDelegate {
@Override
- public boolean isFileDeletable(Path file) {
+ public boolean isFileDeletable(FileStatus fStat) {
return false;
}
}
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java Tue Jul 23 17:38:15 2013
@@ -75,7 +75,7 @@ public class TestHFileCleaner {
conf.setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 100);
cleaner.setConf(conf);
assertTrue("File not set deletable - check mod time:" + getFileStats(file, fs)
- + " with create time:" + createTime, cleaner.isFileDeletable(file));
+ + " with create time:" + createTime, cleaner.isFileDeletable(fs.getFileStatus(file)));
}
/**
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotHFileCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotHFileCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotHFileCleaner.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotHFileCleaner.java Tue Jul 23 17:38:15 2013
@@ -84,6 +84,6 @@ public class TestSnapshotHFileCleaner {
fs.createNewFile(new Path(archivedHfileDir, hfile));
// make sure that the file isn't deletable
- assertFalse(cleaner.isFileDeletable(new Path(hfile)));
+ assertFalse(cleaner.isFileDeletable(fs.getFileStatus(refFile)));
}
-}
\ No newline at end of file
+}
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotLogCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotLogCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotLogCleaner.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestSnapshotLogCleaner.java Tue Jul 23 17:38:15 2013
@@ -80,6 +80,6 @@ public class TestSnapshotLogCleaner {
fs.create(logFile);
// make sure that the file isn't deletable
- assertFalse(cleaner.isFileDeletable(logFile));
+ assertFalse(cleaner.isFileDeletable(fs.getFileStatus(logFile)));
}
-}
\ No newline at end of file
+}
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/CheckedArchivingHFileCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/CheckedArchivingHFileCleaner.java?rev=1506176&r1=1506175&r2=1506176&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/CheckedArchivingHFileCleaner.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/CheckedArchivingHFileCleaner.java Tue Jul 23 17:38:15 2013
@@ -17,7 +17,7 @@
*/
package org.apache.hadoop.hbase.regionserver;
-import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.hbase.master.cleaner.BaseHFileCleanerDelegate;
/**
@@ -31,7 +31,7 @@ public class CheckedArchivingHFileCleane
private static boolean checked;
@Override
- public boolean isFileDeletable(Path file) {
+ public boolean isFileDeletable(FileStatus fStat) {
checked = true;
return true;
}