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

BPServiceActor processes commands from NameNode asynchronously

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.3.0
    • Component/s: datanode
    • Labels:
      None
    • Hadoop Flags:
      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.001.patch
          4 kB
          Xiaoqiao He
        2. HDFS-14997.002.patch
          7 kB
          Xiaoqiao He
        3. HDFS-14997.003.patch
          9 kB
          Xiaoqiao He
        4. HDFS-14997.004.patch
          11 kB
          Xiaoqiao He
        5. HDFS-14997.005.patch
          11 kB
          Xiaoqiao He
        6. HDFS-14997.addendum.patch
          0.7 kB
          Xiaoqiao He
        7. image-2019-12-26-16-15-44-814.png
          62 kB
          Zhenyu Zheng

          Issue Links

            Activity

              People

              • Assignee:
                hexiaoqiao Xiaoqiao He
                Reporter:
                hexiaoqiao Xiaoqiao He
              • Votes:
                0 Vote for this issue
                Watchers:
                19 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: