hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matteo Bertozzi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8522) Archived hfiles and old hlogs may be deleted immediatly by HFileCleaner, LogCleaner in HMaster
Date Fri, 10 May 2013 09:15:17 GMT

    [ https://issues.apache.org/jira/browse/HBASE-8522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13653659#comment-13653659
] 

Matteo Bertozzi commented on HBASE-8522:
----------------------------------------

I don't think that FSUtils.archiveFile() name is semantically correct.
That is just a rename with a set timestamp... it does not the archiving as you may expect.

instead of System.currentTimeMillis() use EnvironmentEdgeManager.currentTimeMillis()
instead of thread.Sleep() you can use EnvironmentEdgeManager.injectEdge() 

Replace the "temptarget" path with htu.getDataTestDir("testArchiveFile")
{code}
-Path p = new Path("temptarget" + File.separator + file);
+Path testDir = htu.getDataTestDir("testArchiveFile");
+Path p = new Path(testDir, file);
{code}

other than these minor stuff, patch looks good to me.
                
> Archived hfiles and old hlogs may be deleted immediatly by HFileCleaner, LogCleaner in
HMaster
> ----------------------------------------------------------------------------------------------
>
>                 Key: HBASE-8522
>                 URL: https://issues.apache.org/jira/browse/HBASE-8522
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.94.3
>            Reporter: Liu Shaohui
>            Assignee: Liu Shaohui
>            Priority: Minor
>         Attachments: HBASE-8522-trunk.patch
>
>
> TimeToLiveHFileCleaner is configed to 'hbase.master.hfilecleaner.plugins' in hbase-default.xml.
And timeToLiveHFileCleaner uses the modify time of the hfile to determine if it should be
deleted. But, the modify time of the hdfs file is time when its writer is closed. The rename
op will not change the modify time of the hfile. So the hfile may be deleted immediatly by
HFileCleaner after it is moved to archives. See log:
> 2013-05-08 08:15:46,053 DEBUG org.apache.hadoop.hbase.master.cleaner.CleanerChore: Checking
directory: hdfs://hbase/.archive/table/4e48ffc1ec089082c66e6d1b5f018fb5/M/729e8bc1430540cb9b2c147c90039cdc
> 2013-05-08 08:15:46,055 DEBUG org.apache.hadoop.ipc.ProtobufRpcEngine: Call: getFileInfo
took 1ms
> 2013-05-08 08:15:46,055 DEBUG org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner:
Life:40033567, ttl:300000, current:1367972146054, from: 1367932112487
> 2013-05-08 08:15:46,055 DEBUG org.apache.hadoop.hbase.master.cleaner.CleanerChore: Removing:hdfs://hbase/.archive/table/4e48ffc1ec089082c66e6d1b5f018fb5/M/729e8bc1430540cb9b2c147c90039cdc
from archive
> The same to old hlogs.
> And my solution is very simple: When hfiles and hlogs are archived, we set the modify
time of files after rename.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message