Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-5329

Update FSNamesystem#getListing() to handle inode path in startAfter token

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.3.0
    • namenode, nfs
    • None
    • Reviewed

    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.

      Attachments

        1. HDFS-5329.patch
          2 kB
          Brandon Li
        2. HDFS-5329.5.patch
          7 kB
          Brandon Li
        3. HDFS-5329.4.patch
          7 kB
          Brandon Li
        4. HDFS-5329.3.patch
          4 kB
          Brandon Li
        5. HDFS-5329.2.patch
          4 kB
          Brandon Li
        6. HDFS-5329.1.patch
          4 kB
          Brandon Li

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            brandonli Brandon Li
            brandonli Brandon Li
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Issue deployment