From 72f393612a0d504c93a5d2b014631d7fafef649d Mon Sep 17 00:00:00 2001 From: madhuvaidya Date: Fri, 14 Oct 2011 18:06:27 +0000 Subject: [PATCH 07/21] [HBASE-4591] Increase TTL for old HLogs and change TTL policy to look at modification time. Summary: Increased it from 10 min to 7 days. 1. This is a long - hence will be < maxLong. 2. Not sure how much memory 7 days worth of HLogs take. Test Plan: I'll test this out on my dev cluster. Reviewers: kranganathan, kannan, nspiegelberg Reviewed By: kranganathan CC: pritam, madhuvaidya, kranganathan, kannan Differential Revision: 343314 Task ID: 756846 git-svn-id: svn+ssh://tubbs/svnhive/hadoop/branches/titan/VENDOR.hbase/hbase-trunk@19323 e7acf4d4-3532-417f-9e73-7a9ae25a1f51 --- .../hadoop/hbase/master/TimeToLiveLogCleaner.java | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java b/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java index b11102b..ddf1139 100644 --- a/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java +++ b/src/main/java/org/apache/hadoop/hbase/master/TimeToLiveLogCleaner.java @@ -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 implements LogCleanerDelegate { 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) { -- 1.6.5.2