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

Steve Loughran commented on HADOOP-10987:
-----------------------------------------

I've only just noticed this. It would have been really nice if someone had 
actually written the bit of the filesystem specification to cover this, as well 
as adding a specific contract test which could then be applied, consistently, 
to all filesystems. The way we do with every bit of the FS API.

Instead, there is a method whose javadocs are incomplete. What are the 
prerequisites? The post reqs? What happens if the path is missing? what 
concurrency guarantees —if any— can be made? 

These are the kind of things people trying to use an API need to know, and 
people trying to do other implementations of an API need to understand. Even 
HDFS benefits from them as it helps define how much of its behaviour is 
intentional.

I'm not going to address this as part of HADOOP-13207; instead I've filed a new 
JIRA, HADOOP-13256, to cover the task of defining this API properly and 
producing the cross-FS tests to validate its behaviour. Does anyone want to do 
this?

> Provide an iterator-based listing API for FileSystem
> ----------------------------------------------------
>
>                 Key: HADOOP-10987
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10987
>             Project: Hadoop Common
>          Issue Type: Improvement
>    Affects Versions: 2.7.0
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>             Fix For: 2.7.0
>
>         Attachments: HADOOP-10987.patch, HADOOP-10987.v2.patch, 
> HADOOP-10987.v3.patch, HADOOP-10987.v4.branch-2.patch, HADOOP-10987.v4.patch, 
> HADOOP-10987.v4_with_comment_fix.branch-2.patch, 
> HADOOP-10987.v4_with_comment_fix.patch
>
>
> Iterator based listing methods already exist in {{FileContext}} for both 
> simple listing and listing with locations. However, {{FileSystem}} lacks the 
> former.  From what I understand, it wasn't added to {{FileSystem}} because it 
> was believed to be phased out soon. Since {{FileSystem}} is very well alive 
> today and new features are getting added frequently, I propose adding an 
> iterator based {{listStatus}} method. As for the name of the new method, we 
> can use the same name used in {{FileContext}} : {{listStatusIterator()}}.
> It will be particularly useful when listing giant directories. Without this, 
> the client has to build up a huge data structure and hold it in memory. We've 
> seen client JVMs running out of memory because of this.
> Once this change is made, we can modify FsShell, etc. in followup jiras.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to