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

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


    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.0-alpha1
    • Fix Version/s: 2.4.0
    • Component/s: datanode
    • Labels:
    • Target Version/s:
    • Hadoop Flags:


      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.


        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



              • Assignee:
                arpitagarwal Arpit Agarwal
                arpitagarwal Arpit Agarwal
              • Votes:
                0 Vote for this issue
                15 Start watching this issue


                • Created: