hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brandon Li (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HDFS-5329) Update FSNamesystem#getListing() to handle inode path in startAfter token
Date Fri, 11 Oct 2013 00:06:43 GMT

     [ 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)

Mime
View raw message