[ 
https://issues.apache.org/jira/browse/HADOOP-14255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mingliang Liu updated HADOOP-14255:
-----------------------------------
    Description: 
In S3AFileSystem, as an optimization, we delete unnecessary fake directory 
objects if that directory contains at least one (nested) file. That is done in 
closing stream of newly created file. However, if the directory becomes 
non-empty after we just create an empty subdirectory, we do not delete its fake 
directory object though that fake directory object becomes "unnecessary".

So in {{S3AFileSystem::mkdirs()}}, we have a pending TODO:
{quote}
  // TODO: If we have created an empty file at /foo/bar and we then call
  // mkdirs for /foo/bar/baz/roo what happens to the empty file /foo/bar/?
  private boolean innerMkdirs(Path p, FsPermission permission)
{quote}

This JIRA is to fix the TODO: provide consistent behavior for a fake directory 
object between its nested subdirectory and nested file by deleting it.

See related discussion in [HADOOP-14236]. Thanks [~ste...@apache.org] for 
discussion.

  was:
In S3AFileSystem, as an optimization, we delete unnecessary fake directory 
objects if that directory contains at least one (nested) file. That is done in 
closing stream of newly created file. However, if the directory becomes 
non-empty after we just create an empty subdirectory, we do not delete its fake 
directory object though that fake directory object becomes "unnecessary".

So in {{S3AFileSystem::mkdirs()}}, we have a pending TODO:
{quote}
  // TODO: If we have created an empty file at /foo/bar and we then call
  // mkdirs for /foo/bar/baz/roo what happens to the empty file /foo/bar/?
  private boolean innerMkdirs(Path p, FsPermission permission)
{quote}

This JIRA is to fix the TODO: provide consistent behavior for a fake directory 
object between its nested subdirectory and nested file by deleting it.

See related discussion in [HADOOP-14236].


> S3A to delete unnecessary fake directory objects in mkdirs()
> ------------------------------------------------------------
>
>                 Key: HADOOP-14255
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14255
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>            Reporter: Mingliang Liu
>            Assignee: Mingliang Liu
>
> In S3AFileSystem, as an optimization, we delete unnecessary fake directory 
> objects if that directory contains at least one (nested) file. That is done 
> in closing stream of newly created file. However, if the directory becomes 
> non-empty after we just create an empty subdirectory, we do not delete its 
> fake directory object though that fake directory object becomes "unnecessary".
> So in {{S3AFileSystem::mkdirs()}}, we have a pending TODO:
> {quote}
>   // TODO: If we have created an empty file at /foo/bar and we then call
>   // mkdirs for /foo/bar/baz/roo what happens to the empty file /foo/bar/?
>   private boolean innerMkdirs(Path p, FsPermission permission)
> {quote}
> This JIRA is to fix the TODO: provide consistent behavior for a fake 
> directory object between its nested subdirectory and nested file by deleting 
> it.
> See related discussion in [HADOOP-14236]. Thanks [~ste...@apache.org] for 
> discussion.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to