org.apache.hadoop.hdfs.util
Class DataTransferThrottler

java.lang.Object
  extended by org.apache.hadoop.hdfs.util.DataTransferThrottler

public class DataTransferThrottler
extends Object

a class to throttle the data transfers. This class is thread safe. It can be shared by multiple threads. The parameter bandwidthPerSec specifies the total bandwidth shared by threads.


Constructor Summary
DataTransferThrottler(long bandwidthPerSec)
          Constructor
DataTransferThrottler(long period, long bandwidthPerSec)
          Constructor
 
Method Summary
 long getBandwidth()
           
 void setBandwidth(long bytesPerSecond)
          Sets throttle bandwidth.
 void throttle(long numOfBytes)
          Given the numOfBytes sent/received since last time throttle was called, make the current thread sleep if I/O rate is too fast compared to the given bandwidth.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataTransferThrottler

public DataTransferThrottler(long bandwidthPerSec)
Constructor

Parameters:
bandwidthPerSec - bandwidth allowed in bytes per second.

DataTransferThrottler

public DataTransferThrottler(long period,
                             long bandwidthPerSec)
Constructor

Parameters:
period - in milliseconds. Bandwidth is enforced over this period.
bandwidthPerSec - bandwidth allowed in bytes per second.
Method Detail

getBandwidth

public long getBandwidth()
Returns:
current throttle bandwidth in bytes per second.

setBandwidth

public void setBandwidth(long bytesPerSecond)
Sets throttle bandwidth. This takes affect latest by the end of current period.

Parameters:
bytesPerSecond -

throttle

public void throttle(long numOfBytes)
Given the numOfBytes sent/received since last time throttle was called, make the current thread sleep if I/O rate is too fast compared to the given bandwidth.

Parameters:
numOfBytes - number of bytes sent/received since last time throttle was called


Copyright © 2013 Apache Software Foundation. All Rights Reserved.