[
https://issues.apache.org/jira/browse/HDFS-5430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13832141#comment-13832141
]
Colin Patrick McCabe commented on HDFS-5430:
--------------------------------------------
I think it would be nicer to have something like this:
{code}
public class CacheDirectiveInfo {
public static class Expiration {
public static Expiration newRelative(long ms) {
return new Expiration(ms, true);
}
public static Expiration newAbsolute(long ms) {
return new Expiration(ms, false);
}
public static Expiration newAbsolute(Date date) {
return new Expiration(date.toLong(), false);
}
private Expiration(long ms, boolean isRelative) {
this.ms = ms;
this.isRelative = isRelative;
}
public long toAbsolute() { // using local clock
...
}
private final long ms;
private final boolean isRelative;
}
...
}
{code}
That way, we wouldn't have to worry about the awkward situation of having two
fields in {{CacheDirectiveInfo}}, which can't be both used at the same time.
What do you think?
We can continue making this just a long in CacheDirective, since at that point,
it's always absolute. It would be nice to have a constant for NEVER, rather
than hard-coding -1 (Sun style guide discourages magic numbers.)
I also wonder if we can add a {{boolean expired}} or something to
{{CacheDirectiveStats}}, since otherwise the client can't easily figure out if
the directive has expired. After all, the clock on the NN might be different.
Looks good aside from that.
> Support TTL on CacheBasedPathDirectives
> ---------------------------------------
>
> Key: HDFS-5430
> URL: https://issues.apache.org/jira/browse/HDFS-5430
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: datanode, namenode
> Reporter: Colin Patrick McCabe
> Assignee: Andrew Wang
> Priority: Minor
> Attachments: hdfs-5430-1.patch, hdfs-5430-2.patch, hdfs-5430-3.patch
>
>
> It would be nice if CacheBasedPathDirectives would support an expiration
> time, after which they would be automatically removed by the NameNode. This
> time would probably be in wall-block time for the convenience of system
> administrators.
--
This message was sent by Atlassian JIRA
(v6.1#6144)