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

BPServiceActor processes commands from NameNode asynchronously

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.3.0, 3.2.3, 3.2.4
    • datanode
    • None
    • Reviewed

    Description

      There are two core functions, report(#sendHeartbeat, #blockReport, #cacheReport) and #processCommand in #BPServiceActor main process flow. If processCommand cost long time it will block send report flow. Meanwhile processCommand could cost long time(over 1000s the worst case I meet) when IO load of DataNode is very high. Since some IO operations are under #datasetLock, So it has to wait to acquire #datasetLock long time when process some of commands(such as #DNA_INVALIDATE). In such case, #heartbeat will not send to NameNode in-time, and trigger other disasters.
      I propose to improve #processCommand asynchronously and not block #BPServiceActor to send heartbeat back to NameNode when meet high IO load.
      Notes:
      1. Lifeline could be one effective solution, however some old branches are not support this feature.
      2. IO operations under #datasetLock is another issue, I think we should solve it at another JIRA.

      Attachments

        1. HDFS-14997-branch-3.2.001.patch
          11 kB
          Xiaoqiao He
        2. HDFS-14997.addendum.patch
          0.7 kB
          Xiaoqiao He
        3. image-2019-12-26-16-15-44-814.png
          62 kB
          Zhenyu Zheng
        4. HDFS-14997.005.patch
          11 kB
          Xiaoqiao He
        5. HDFS-14997.004.patch
          11 kB
          Xiaoqiao He
        6. HDFS-14997.003.patch
          9 kB
          Xiaoqiao He
        7. HDFS-14997.002.patch
          7 kB
          Xiaoqiao He
        8. HDFS-14997.001.patch
          4 kB
          Xiaoqiao He

        Issue Links

          Activity

            People

              hexiaoqiao Xiaoqiao He
              hexiaoqiao Xiaoqiao He
              Votes:
              0 Vote for this issue
              Watchers:
              24 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: