[ https://issues.apache.org/jira/browse/HADOOP-10987?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kihwal Lee updated HADOOP-10987: -------------------------------- Attachment: HADOOP-10987.v4_with_comment_fix.patch HADOOP-10987.v4_with_comment_fix.branch-2.patch Attaching new patches with the comment fixed. Since there is no actual code change, I will not make it go through the precommit process. This is the diff: {code} > @@ -1701,6 +1701,36 @@ public LocatedFileStatus next() throws IOException { 10,11c10,12 < + * while consuming the entries. This reduces memory consumption during < + * listing of a large directory. --- > + * while consuming the entries. Each file system implementation should > + * override this method and provide a more efficient implementation, if > + * possible. {code} > 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 > Reporter: Kihwal Lee > Assignee: Kihwal Lee > 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)