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

Fix some issue in DFSInputstream

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Won't Fix
    • 2.0.2-alpha
    • None
    • None
    • None

    Description

      Following issues in DFSInputStream are addressed in this jira:
      1. read may not retry enough in some cases cause early failure
      Assume the following call logic

       
      readWithStrategy()
        -> blockSeekTo()
        -> readBuffer()
           -> reader.doRead()
           -> seekToNewSource() add currentNode to deadnode, wish to get a different datanode
              -> blockSeekTo()
                 -> chooseDataNode()
                    -> block missing, clear deadNodes and pick the currentNode again
              seekToNewSource() return false
           readBuffer() re-throw the exception quit loop
      readWithStrategy() got the exception,  and may fail the read call before tried MaxBlockAcquireFailures.
      

      2. In multi-threaded scenario(like hbase), DFSInputStream.failures has race condition, it is cleared to 0 when it is still used by other thread. So it is possible that some read thread may never quit. Change failures to local variable solve this issue.

      3. If local datanode is added to deadNodes, it will not be removed from deadNodes if DN is back alive. We need a way to remove local datanode from deadNodes when the local datanode is become live.

      Attachments

        1. TestDFSInputStream.java
          4 kB
          Binglin Chang
        2. HDFS-4273.patch
          26 kB
          Binglin Chang
        3. HDFS-4273-v2.patch
          26 kB
          Binglin Chang
        4. HDFS-4273.v3.patch
          26 kB
          Binglin Chang
        5. HDFS-4273.v4.patch
          27 kB
          Binglin Chang
        6. HDFS-4273.v5.patch
          27 kB
          Binglin Chang
        7. HDFS-4273.v6.patch
          27 kB
          Binglin Chang
        8. HDFS-4273.v7.patch
          29 kB
          Binglin Chang
        9. HDFS-4273.v8.patch
          27 kB
          Binglin Chang

        Issue Links

          Activity

            People

              decster Binglin Chang
              decster Binglin Chang
              Votes:
              0 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: