Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-5034

NameNode should send both replication and deletion requests to DataNode in one reply to a heartbeat



    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.18.0
    • 0.19.1
    • None
    • None
    • Reviewed
    • This patch changes the DatanodeProtocoal version number from 18 to 19. The patch allows NameNode to send both block replication and deletion request to a DataNode in response to a heartbeat.


      Currently NameNode favors block replication requests over deletion requests. On reply to a heartbeat, NameNode does not send a block deletion request unless there is no block replication request.

      This brings a problem when a near-full cluster loses a bunch of DataNodes. In react to the DataNode loss, NameNode starts to replicate blocks. However, replication takes a lot of cpu and a lot of replications fail because of the lack of disk space. So the administrator tries to delete some DFS files to free up space. However, block deletion requests get delayed for very long time because it takes a long time to drain the block replication requests for most DataNodes.

      I'd like to propose to let NameNode to send both replication requests and deletion requests to DataNodes in one reply to a heartbeat. This also implies that the replication monitor should schedule both replication and deletion work in one iteration.


        1. blockTransferInvalidate3.patch
          14 kB
          Hairong Kuang
        2. blockTransferInvalidate2.patch
          9 kB
          Hairong Kuang
        3. blockTransferInvalidate1.patch
          14 kB
          Hairong Kuang
        4. blockTransferInvalidate.patch
          12 kB
          Hairong Kuang



            hairong Hairong Kuang
            hairong Hairong Kuang
            0 Vote for this issue
            2 Start watching this issue