You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2011/10/24 23:27:30 UTC
svn commit: r1188392 -
/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java
Author: nspiegelberg
Date: Mon Oct 24 21:27:29 2011
New Revision: 1188392
URL: http://svn.apache.org/viewvc?rev=1188392&view=rev
Log:
HBASE-4592 TTL for old HLogs should be calculated from last modification time
Modified:
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java?rev=1188392&r1=1188391&r2=1188392&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java Mon Oct 24 21:27:29 2011
@@ -19,6 +19,9 @@
*/
package org.apache.hadoop.hbase.master;
+import java.io.IOException;
+
+import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.Configuration;
import org.apache.commons.logging.Log;
@@ -40,13 +43,13 @@ public class TimeToLiveLogCleaner implem
public boolean isLogDeletable(Path filePath) {
long time = 0;
long currentTime = System.currentTimeMillis();
- String[] parts = filePath.getName().split("\\.");
try {
- time = Long.parseLong(parts[parts.length-1]);
- } catch (NumberFormatException e) {
- LOG.error("Unable to parse the timestamp in " + filePath.getName() +
- ", deleting it since it's invalid and may not be a hlog", e);
- return true;
+ FileStatus fStat = filePath.getFileSystem(conf).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 life = currentTime - time;
if (life < 0) {