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

Datanode should send block reports for each storage in a separate message

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0.0-alpha1
    • 2.4.0
    • datanode
    • None
    • Reviewed

    Description

      When the number of blocks on the DataNode grows large we start running into a few issues:

      1. Block reports take a long time to process on the NameNode. In testing we have seen that a block report with 6 Million blocks takes close to one second to process on the NameNode. The NameSystem write lock is held during this time.
      2. We start hitting the default protobuf message limit of 64MB somewhere around 10 Million blocks. While we can increase the message size limit it already takes over 7 seconds to serialize/unserialize a block report of this size.

      HDFS-2832 has introduced the concept of a DataNode as a collection of storages i.e. the NameNode is aware of all the volumes (storage directories) attached to a given DataNode. This makes it easy to split block reports from the DN by sending one report per storage directory to mitigate the above problems.

      Attachments

        1. HDFS-5153.01.patch
          13 kB
          Arpit Agarwal
        2. HDFS-5153.03.patch
          18 kB
          Arpit Agarwal
        3. HDFS-5153.03b.patch
          18 kB
          Arpit Agarwal
        4. HDFS-5153.04.patch
          98 kB
          Arpit Agarwal
        5. HDFS-5153.05.patch
          98 kB
          Arpit Agarwal

        Issue Links

          Activity

            People

              arp Arpit Agarwal
              arp Arpit Agarwal
              Votes:
              0 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: