[
https://issues.apache.org/jira/browse/HADOOP-13736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15590058#comment-15590058
]
Aaron Fabbri commented on HADOOP-13736:
---------------------------------------
Example code:
In init code:
{code}
if (fs instanceof S3AFileSystem) {
isS3A = true;
}
{code}
Example from put()
{code}
// S3A-specific logic to maintain S3AFileStatus#isEmptyDirectory()
if (isS3A) {
setS3AIsEmpty(parentPath, false);
}
{code}
Implementation:
{code}
private void setS3AIsEmpty(Path path, boolean isEmpty) {
// Update any file statuses in fileHash
PathMetadata meta = fileHash.get(path);
if (meta != null) {
S3AFileStatus s3aStatus = (S3AFileStatus)meta.getFileStatus();
s3aStatus.setIsEmptyDirectory(isEmpty);
}
...
{code}
> Change PathMetadata to hold S3AFileStatus instead of FileStatus.
> ----------------------------------------------------------------
>
> Key: HADOOP-13736
> URL: https://issues.apache.org/jira/browse/HADOOP-13736
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: fs/s3
> Reporter: Lei (Eddy) Xu
> Assignee: Lei (Eddy) Xu
>
> {{S3AFileStatus}} is implemented differently with {{FileStatus}}, for
> instance {{S3AFileStatus#isEmptyDirectory()}} is not implemented in
> {{FileStatus()}}. And {{access_time}}, {{block_replication}}, {{owner}},
> {{group}} and a few other fields are not meaningful in {{S3AFileStatus}}.
> So in the scope of {{S3guard}}, it should use {{S3AFileStatus}} in instead
> of {{FileStatus}} in {{PathMetadaa}} to avoid casting the types back and
> forth in S3A.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]