Adaptive bandwidth throttling
First Claim
1. A method comprising:
- determining one or more of a network bandwidth and a historical bandwidth for a data transfer between a storage source adapted to store computer data and a storage target adapted to store computer data;
adjusting a target bandwidth for the data transfer using a weighting factor, the target bandwidth based on at least one of the network bandwidth and the historical bandwidth, the weighting factor based on a priority for the data transfer; and
transferring at least a block of data of the data transfer from the storage source to the storage target in a manner configured to satisfy the target bandwidth, wherein one or more of a delay before transferring the block and a block size for the block is selected based on the target bandwidth;
wherein the weighting factor is selected such that the target bandwidth is based more on the historical bandwidth than the network bandwidth for a higher value for the priority and is based more on the network bandwidth than the historical bandwidth for a lower value for the priority.
6 Assignments
0 Petitions
Accused Products
Abstract
Apparatuses, systems, methods, and computer program products are disclosed for adaptive bandwidth throttling. A monitor module determines a network bandwidth and/or a historical bandwidth for a data transfer between a storage source and a storage target. A target module adjusts a target bandwidth for a data transfer using a weighting factor. A target bandwidth may be based on at least one of a network bandwidth and a historical bandwidth. A weighting factor for a target bandwidth may be based on a priority for a data transfer. A transfer module transfers at least a block of data of a data transfer from a storage source to a storage target in a manner configured to satisfy a target bandwidth. A delay before transferring a block and/or a block size for the block may be selected based on a target bandwidth.
37 Citations
21 Claims
-
1. A method comprising:
-
determining one or more of a network bandwidth and a historical bandwidth for a data transfer between a storage source adapted to store computer data and a storage target adapted to store computer data; adjusting a target bandwidth for the data transfer using a weighting factor, the target bandwidth based on at least one of the network bandwidth and the historical bandwidth, the weighting factor based on a priority for the data transfer; and transferring at least a block of data of the data transfer from the storage source to the storage target in a manner configured to satisfy the target bandwidth, wherein one or more of a delay before transferring the block and a block size for the block is selected based on the target bandwidth; wherein the weighting factor is selected such that the target bandwidth is based more on the historical bandwidth than the network bandwidth for a higher value for the priority and is based more on the network bandwidth than the historical bandwidth for a lower value for the priority. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
determining one or more of a network bandwidth and a historical bandwidth for a data transfer between a storage source adapted to store computer data and a storage target adapted to store computer data; adjusting a target bandwidth for the data transfer using a weighting factor, the target bandwidth based on at least one of the network bandwidth and the historical bandwidth, the weighting factor based on a priority for the data transfer; transferring at least a block of data of the data transfer from the storage source to the storage target in a manner configured to satisfy the target bandwidth, wherein one or more of a delay before transferring the block and a block size for the block is selected based on the target bandwidth; and decreasing the block size for transfer of a subsequent block of data of the data transfer in response to determining that the delay was greater than a duration of the transferring of the block of data.
-
-
8. A method comprising:
-
determining one or more of a network bandwidth and a historical bandwidth for a data transfer between a storage source adapted to store computer data and a storage target adapted to store computer data; adjusting a target bandwidth for the data transfer using a weighting factor, the target bandwidth based on at least one of the network bandwidth and the historical bandwidth, the weighting factor based on a priority for the data transfer; transferring at least a block of data of the data transfer from the storage source to the storage target in a manner configured to satisfy the target bandwidth, wherein one or more of a delay before transferring the block and a block size for the block is selected based on the target bandwidth; and determining one or more of the delay and the block size for the block of data to satisfy the target bandwidth such that the block size divided by the result of the delay plus an estimated duration of the transferring of the block of data is less than or equal to the target bandwidth. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method comprising:
-
determining one or more of a network bandwidth and a historical bandwidth for a data transfer between a storage source adapted to store computer data and a storage target adapted to store computer data; adjusting a target bandwidth for the data transfer using a weighting factor, the target bandwidth based on at least one of the network bandwidth and the historical bandwidth, the weighting factor based on a priority for the data transfer; and transferring at least a block of data of the data transfer from the storage source to the storage target in a manner configured to satisfy the target bandwidth, wherein one or more of a delay before transferring the block and a block size for the block is selected based on the target bandwidth; wherein the historical bandwidth is for a transfer of a plurality of blocks of data for the data transfer and the network bandwidth is for a transfer of a most recently transferred block of data for the data transfer.
-
-
14. An apparatus comprising:
-
a monitor module configured to monitor network bandwidth, the network bandwidth derived from the monitoring of the operation of a computer network adapted to transfer computer data between at least two separate locations, used for a plurality of data transfers between different storage volumes, the storage volumes associated with different quality of service levels; a target module configured to determine target bandwidths for the data transfers based on the monitored network bandwidth and the different quality of service levels of the storage volumes; and a bandwidth module configured to determine one or more of a waiting period between transfers of different blocks and a block size for each of the data transfers based on the target bandwidths; wherein the bandwidth module is configured to decrease a block size for a data transfer of the plurality of data transfers in response to determining that a waiting period for the data transfer was greater than a duration of transferring a segment of data for the data transfer at the block size. - View Dependent Claims (15, 16)
-
-
17. An apparatus comprising:
-
means for tracking at least a historical bandwidth and a recent bandwidth for a data transfer; means for adjusting a delay and a block size for the data transfer based on the historical bandwidth, the recent bandwidth, and a priority for the data transfer; and means for transferring one or more segments of the data transfer with the adjusted delay and block size for the one or more segments of the data transfer. - View Dependent Claims (18)
-
-
19. A method comprising:
-
transferring data from a first storage volume associated with a computer data storage device using a target bandwidth, the target bandwidth based on a quality-of-service level for the first storage volume; transferring data from a second storage volume associated with a computer data storage device using a different target bandwidth, the different target bandwidth based on a different quality-of-service level for the second storage volume; and determining the different target bandwidth using a weighting factor selected based on the different quality-of-service level for the second storage volume; wherein the weighting factor is selected such that the different target bandwidth is influenced more by a historical bandwidth than by a network bandwidth for a first quality-of-service level for the second storage volume and is influenced more by the network bandwidth than by the historical bandwidth for a second quality-of-service level for the second storage volume. - View Dependent Claims (20, 21)
-
Specification