You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "He Xiaoqiao (JIRA)" <ji...@apache.org> on 2018/05/06 18:29:00 UTC
[jira] [Created] (HDFS-13529) Fix default trash policy emptier
trigger time correctly
He Xiaoqiao created HDFS-13529:
----------------------------------
Summary: Fix default trash policy emptier trigger time correctly
Key: HDFS-13529
URL: https://issues.apache.org/jira/browse/HDFS-13529
Project: Hadoop HDFS
Issue Type: Bug
Components: namenode
Affects Versions: 2.7.6, 3.1.0, 3.2.0, 2.9.2, 2.8.5
Reporter: He Xiaoqiao
Trash emptier is designed to auto trigger at UTC 00:00, however I am confused all the time that it usually triggers at a few minutes even half a hour after UTC 00:00 actually in our production cluster.
The main reason is default policy emptier thread sleep more time than as expect, since it does not consider the delete operation time cost itself. especially for a large cluster, auto trash cleaner may cost dozens of minutes.
The right way is that gets current time {{now}} before calculate {{end}} time.
{code:java}
long now = Time.now();
while (true) {
end = ceiling(now, emptierInterval);
try { // sleep for interval
Thread.sleep(end - now);
} catch (InterruptedException e) {
break; // exit on interrupt
}
try {
now = Time.now();
...... // delete trash checkpoint
} catch (Exception e) {
LOG.warn("RuntimeException during Trash.Emptier.run(): ", e);
}
}
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org