You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Lin Yiqun (JIRA)" <ji...@apache.org> on 2016/02/04 16:31:39 UTC

[jira] [Created] (HDFS-9756) Hard-Code value in DataTransferThrottler

Lin Yiqun created HDFS-9756:
-------------------------------

             Summary: Hard-Code value in DataTransferThrottler
                 Key: HDFS-9756
                 URL: https://issues.apache.org/jira/browse/HDFS-9756
             Project: Hadoop HDFS
          Issue Type: Bug
    Affects Versions: 2.7.1
            Reporter: Lin Yiqun
            Assignee: Lin Yiqun


In DataTransferThrottler, the period time is hard-code for 500 ms. Even though it has other construction method, 
{code}
/**
   * Constructor
   * @param period in milliseconds. Bandwidth is enforced over this
   *        period.
   * @param bandwidthPerSec bandwidth allowed in bytes per second. 
   */
  public DataTransferThrottler(long period, long bandwidthPerSec) {
    this.curPeriodStart = monotonicNow();
    this.period = period;
    this.curReserve = this.bytesPerPeriod = bandwidthPerSec*period/1000;
    this.periodExtension = period*3;
  }
{code}
but it was only invoked by this method 
{code}
public DataTransferThrottler(long bandwidthPerSec) {
    this(500, bandwidthPerSec);  // by default throttling period is 500ms 
}
{code}
So the period is a hard-code. This value can also influence the data-transfering. If period time value set small, the number of times to waitting for next period will be increased and the total waitting-time also  be increased. So the average bandwidth will be decreased.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)