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

RPC fairness for Datanode data transfers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      Currently, the Datanode just replies to the data transfers from the clients as soon as they come.
      Eventually, when the DataXceiverServer runs out of threads, it just refuses:

      // Make sure the xceiver count is not exceeded
      int curXceiverCount = datanode.getXceiverCount();
      if (curXceiverCount > maxXceiverCount) {
        throw new IOException("Xceiver count " + curXceiverCount
            + " exceeds the limit of concurrent xcievers: "
            + maxXceiverCount);
      }
      

      We had a situation where a user had many containers accessing the same block and ending up saturating the 3 Datanodes and messing with the other users.
      Ideally, the Namenode should manage this situation some degree but we can still get into this situation.
      We should have some smart in the DN to track this and apply some fairness to the number of requests per user.

      Attachments

        Issue Links

          Activity

            People

              xuel1 Xue Liu
              elgoiri Íñigo Goiri
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated: