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

Hangjun Ye commented on HDFS-6382:
----------------------------------

bq. This logic is subject to time of check/time of use race conditions, 
possibly resulting in incorrect deletion of data. For example, imagine the 
following sequence: ...

It doesn't sound a "race condition" to me. We could consider TTL as an 
"independent" attribute of file, just like file owner and replication number. 
In the above scenario,  it seems to work as expected, since the admin only 
changes the owner of /file1 but leaves the TTL attribute as is and so the TTL 
should be still effective. If the admin doesn't want it to happen, he/she 
should "unset" the TTL attribute (i.e. set it to infinity) firstly before 
he/she changes the owner of /file1, and the new owner of /file1 could set a new 
TTL attribute later if needed.

> HDFS File/Directory TTL
> -----------------------
>
>                 Key: HDFS-6382
>                 URL: https://issues.apache.org/jira/browse/HDFS-6382
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: hdfs-client, namenode
>    Affects Versions: 2.4.0
>            Reporter: Zesheng Wu
>            Assignee: Zesheng Wu
>
> In production environment, we always have scenario like this, we want to 
> backup files on hdfs for some time and then hope to delete these files 
> automatically. For example, we keep only 1 day's logs on local disk due to 
> limited disk space, but we need to keep about 1 month's logs in order to 
> debug program bugs, so we keep all the logs on hdfs and delete logs which are 
> older than 1 month. This is a typical scenario of HDFS TTL. So here we 
> propose that hdfs can support TTL.
> Following are some details of this proposal:
> 1. HDFS can support TTL on a specified file or directory
> 2. If a TTL is set on a file, the file will be deleted automatically after 
> the TTL is expired
> 3. If a TTL is set on a directory, the child files and directories will be 
> deleted automatically after the TTL is expired
> 4. The child file/directory's TTL configuration should override its parent 
> directory's
> 5. A global configuration is needed to configure that whether the deleted 
> files/directories should go to the trash or not
> 6. A global configuration is needed to configure that whether a directory 
> with TTL should be deleted when it is emptied by TTL mechanism or not.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to