[
https://issues.apache.org/jira/browse/HADOOP-1377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12504421
]
Konstantin Shvachko commented on HADOOP-1377:
---------------------------------------------
DFSClient.java
- Please avoid introducing methods with deprecated UTF8. String would be a
better in this case.
public DFSFileInfo getFileInfo(UTF8 src) throws IOException {
FileStatus
- all imports are redundant
- I think that in terms of different file system compatibility FileStatus
should
be an interface. For the hdfs we should have a class HDFSFileStatus, which
should be a part
of DFSFileInfo combining all status fields. That way we will not need to change
protocols and internal name-node interfaces when we add/modify status fields.
- In the FileStatus constructor you are assigning blockSize to itself.
this.blockSize = blockSize;
I guess a parameter is missing.
DfsPath
- I am not sure whether HADOOP-1377 should be built on top of HADOOP-1298 or
vise versa, but I agree with Doug that public api should use FileStatus.
That is why DfsPath should introduce getFileStatus() rather than getters for
each new field.
FSDirectory
- Rather than multiplying parameters for each method related to meta-data
modification
I would just add FileStatus as a parameter once.
- getFileInfo should not be public and should not have UTF8 as a parameter
public DFSFileInfo getFileInfo(UTF8 src) throws IOException {...}
Same for FSNamesystem.getFileInfo().
FSEdiLlog
- loadFSEdits() has a lot of code replication, which deserves to be wrapped in
separate method(s). I'd serialize entire HDFSFileStatus, which is Writable
anyway.
Same for FSImage, I'd serialize the entire FileStatus.
> Creation time and modification time for hadoop files and directories
> --------------------------------------------------------------------
>
> Key: HADOOP-1377
> URL: https://issues.apache.org/jira/browse/HADOOP-1377
> Project: Hadoop
> Issue Type: New Feature
> Components: dfs
> Reporter: dhruba borthakur
> Assignee: dhruba borthakur
> Attachments: CreationModificationTime.html, CreationTime.patch
>
>
> This issue will document the requirements, design and implementation of
> creation times and modification times of hadoop files and directories.
> My proposal is to have support two additional attributes for each file and
> directory in HDFS. The "creation time" is the time when the file/directory
> was created. It is a 8 byte integer stored in each FSDirectory.INode. The
> "modification time" is the time when the last modification occured to the
> file/directory. It is an 8 byte integer stored in the FSDirectory.INode.
> These two fields are stored in in the FSEdits and FSImage as part of the
> transaction that created the file/directory.
> My current proposal is to not support "access time" for a file/directory. It
> is costly to implement and current applications might not need it.
> In the current implementation, the "modification time" for a file will be
> same as its creation time because HDFS files are currently unmodifiable.
> Setting file attributes (e.g. setting the replication factor) of a file does
> not modify the "modification time" of that file. The "modification time" for
> a directory is either its creation time or the time when the most recent
> file-delete or file-create occured in that directory.
> A new command named "hadoop dfs -lsl" will display the creation time and
> modification time of the files/directories that it lists. The output of the
> existing command "hadoop dfs -ls" will not be affected.
> The ClientProtocol will change because DFSFileInfo will have two additional
> fields: the creation time and modification time of the file that it
> represents. This information can be retrieved by clients thorugh the
> ClientProtocol.getListings() method. The FileSystem public API will have two
> additional methods: getCreationTime and getModificationTime().
> The datanodes are completely transparent to this design and implementation
> and requires no change.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.