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

Brandon Li updated HDFS-5329:
-----------------------------

    Description: 
This is to support network protocols which can't use file name as the token to 
resume directory listing. 

NFS gateway doesn't know the name of startAfter and has to use inode id 
instead. NFS protocol uses readdir and readdirplus to list directory content. 
In the response, each dirent has an 8-byte number verifier.

To list the content of large directories, NFS client sends multiple readdir or 
readdirplus requests to NFS gateway with one verifier(resume point) in the 
request. The verifier is basically of the same usage as "startAfter" in 
getListing. Since NFSv3 uses file handle to communicate and doesn't know the 
file name. NFS gateway has to use the inode id path as "startAfter" when 
sending getList request to NN, however NN currently expects "startAfter" to be 
just a file name. As a result, NFS gateway can't list the content of large 
directories.

  was:When the client is using inode path to get the file info, the client 
could also need the server to return the file name.


> Update FSNamesystem#getListing() to handle inode path in startAfter token
> -------------------------------------------------------------------------
>
>                 Key: HDFS-5329
>                 URL: https://issues.apache.org/jira/browse/HDFS-5329
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>            Reporter: Brandon Li
>            Assignee: Brandon Li
>         Attachments: HDFS-5329.1.patch, HDFS-5329.2.patch, HDFS-5329.patch
>
>
> This is to support network protocols which can't use file name as the token 
> to resume directory listing. 
> NFS gateway doesn't know the name of startAfter and has to use inode id 
> instead. NFS protocol uses readdir and readdirplus to list directory content. 
> In the response, each dirent has an 8-byte number verifier.
> To list the content of large directories, NFS client sends multiple readdir 
> or readdirplus requests to NFS gateway with one verifier(resume point) in the 
> request. The verifier is basically of the same usage as "startAfter" in 
> getListing. Since NFSv3 uses file handle to communicate and doesn't know the 
> file name. NFS gateway has to use the inode id path as "startAfter" when 
> sending getList request to NN, however NN currently expects "startAfter" to 
> be just a file name. As a result, NFS gateway can't list the content of large 
> directories.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to