IP Library Granted Patent US 9,419,907
Granted Patent B2
US 9,419,907 · App. 15/003,893 · Granted Aug 16, 2016

I/O driven rate adaptation

Inventors: Michelle Christine Munson (Berkeley, CA); Serban Simu (Berkeley, CA); Ying Xu (Fremont, CA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L47/25H04L43/08H04L47/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,419,907
App. No.
15/003,893
Granted
Aug 16, 2016
Kind
B2
Abstract

Described is an I/O driven, feedback based rate control mechanism that allows a transfer session to self-adjust its transfer rate in response to the speed of the storage device at the destination. The described system may operate at the application layer, which makes cross-platform deployment an easier task.

Claims (193)

1. A computer program product comprising:

first and second non-transitory computer readable storage mediums having a plurality of processes stored thereon for execution by a plurality of host processing devices including a first host and a second host connected over a network, the second host being connected to a storage device, wherein the plurality of processes include:

a sending process on the first non-transitory computer readable storage medium and executable in the first host for communicating data to a receiving process on the second non-transitory computer readable storage medium and executable in the second host in order for the receiving process to write the data to the storage device, wherein the sending process is configured to send data to the receiving process at a specified variable data transfer rate x(t) at any time t, wherein the receiving process is configured to store data received in a ring buffer before writing it to the storage device;

a storage rate controller incorporated into the receiving process, wherein the storage rate controller is configured to: 1) measure a current occupancy of the ring buffer, 2) calculate an updated data transfer rate x′(t) as a function of a current data transfer rate x(t), the measured current occupancy, a total ring buffer size, and a specified target occupancy value, and 3) communicate the updated data transfer rate to the sending process;

a network rate controller incorporated into the receiving process and configured to measure an extent of network congestion and to compute a network rate x net (t) based on the measured congestion, and,

wherein the sending process is to adjust the data transfer rate as a function of x net (t) and the updated data transfer rate sent by the receiving process.

2. The computer program product of claim 1 wherein the storage rate controller is configured such that the updated data transfer rate x′(t) represents a decrease of the current data transfer rate x(t) if the measured current occupancy is greater than the specified target occupancy value.

3. The computer program product of claim 1 wherein the storage rate controller is configured to compute the updated data transfer rate x′(t) after finishing a write operation to the storage device.

4. The computer program product of claim 1 wherein the storage rate controller is configured to compute the updated data transfer rate x′(t) at periodic intervals.

5. The computer program product of claim 1 wherein the storage rate controller is configured to: 1) after finishing a write operation to the storage device, compute the updated data transfer rate x′(t) from a first function of the current data transfer rate x(t), a measured current buffer occupancy, a total size of the ring buffer, and a specified target occupancy value, and 2) at periodic intervals, compute the updated data transfer rate x′(t) from a second function of the current data transfer rate x(t), the measured current buffer occupancy, the total size of the ring buffer, and a specified target occupancy value.

6. The system computer program product of claim 4 wherein the periodic intervals correspond to a currently measured network round-trip time RTT(t).

7. The system computer program product of claim 4 wherein the periodic intervals correspond to a currently measured network round-trip time RTT(t) if RTT(t) is below a specified threshold value and correspond to a specified default value otherwise.

8. The computer program product of claim 5 wherein the storage rate controller is configured to compute the updated data transfer rate x′(t) from a first function as:

x

(

t

)

=

x

(

t

)

+

γ

dist

T

(

t

)

(

ρ

B

-

ρ

(

t

)

B

)

ρ( t )≧ρ min

when a current occupancy ρ(t) is greater than or equal to a predetermined value ρ min , where ρ′ is a specified target occupancy, γ disk is a weighting factor, B is a measure to a total data capacity of the ring buffer, and T(t) is a time duration since the current data transfer rate was last updated.

9. The computer program product of claim 5 wherein the storage rate controller is configured to compute the updated data transfer rate x′(t) from a first function as:

x

(

t

)

=

x

(

t

)

+

γ

dist

T

(

t

)

(

ρ

B

-

x

(

t

)

ρ

(

t

)

τ

(

t

)

)

ρ( t )≧ρ min

when a current occupancy ρ(t) is greater than or equal to a predetermined value ρ min , where ρ′ is a specified target occupancy, γ disk is a weighting factor, B is a measure to a total data capacity of the ring buffer, τ(t)=(B/write_size)*w(t) where write-size is a measure of an amount of data written during a most recent write operation and w(t) is a duration of the most recent write operation, and T(t) is a time duration since the current data transfer rate was last updated.

10. The computer program product of claim 5 wherein the storage rate controller is configured to compute the updated data transfer rate x′(t) at periodic intervals equal to RTT(t) from a second function as:

x ′( t )=α( t ) x ( t ) ρ( t )≧ρ min

α( t )=[1−ρ( t )]/[1−ρ′]

when a current occupancy ρ(t) is greater than or equal to a predetermined value ρ min , where ρ′ is a specified target occupancy.

11. The computer program product of claim 1 further comprising a plurality of sending and receiving processes, with each such receiving process being connected to the storage device and incorporating a storage rate controller and a ring buffer for updating the data transfer rate of its respective sending process, wherein each such receiving process being on the second non-transitory computer readable storage medium and executable in the second host and its respective sending process being on the first non-transitory computer readable storage medium and executable in the first host.

12. The computer program product of claim 1 wherein the measure of network congestion is a queuing delay derived from a measured round trip delay time.

13. The computer program product of claim 1 wherein the sending and receiving processes belong to a group of similar processes that together limit their aggregate data transfer rate by maintaining a virtual queue and calculating an occupancy of the virtual queue based upon their aggregate data transfer rate, and wherein the receiving process further incorporates a virtual link controller which computes a virtual link rate x vl (t) based on the virtual queue occupancy, and wherein the sending process adjusts its data transfer rate as a function of the virtual link rate x vl (t) and the updated data transfer rate x′(t) sent by the receiving process.

14. The computer program product of claim 1 wherein the sending process is to further adjust its data transfer rate as a function of a network rate x net (t) calculated from the measured network congestion, a virtual link control rate x vl (t) calculated from a virtual queue occupancy, and the updated data transfer rate x′(t) sent by the receiving process using a minimal selection criterion as:

x ( t )=min{ x net ( t ), x vl ( t ), x ′( t )}.

15. The computer program product of claim 1 wherein the storage rate controller is configured to compute the updated data transfer rate x′(t) as:

x

(

t

)

=

x

(

t

)

+

γ

dist

T

(

t

)

(

ρ

B

-

ρ

(

t

)

B

)

ρ( t )≧ρ min

when a current occupancy ρ(t) is greater than or equal to a predetermined value ρ min , where ρ′ is a specified target occupancy, γ disk is a weighting factor, B is a measure to a total data capacity of the ring buffer, and T(t) is a time duration since the current data transfer rate was last updated.

16. The computer program product of claim 1 wherein the storage rate controller is configured to compute the updated data transfer rate x′(t) as:

x

(

t

)

=

x

(

t

)

+

γ

dist

T

(

t

)

(

ρ

B

-

x

(

t

)

ρ

(

t

)

τ

(

t

)

)

ρ( t )≧ρ min

when a current occupancy ρ(t) is greater than or equal to a predetermined value ρ min , where ρ′ is a specified target occupancy, γ disk is a weighting factor, B is a measure to a total data capacity of the ring buffer, τ(t)=(B/write_size)*w(t) where write-size is a measure of an amount of data written during a most recent write operation and w(t) is a duration of the most recent write operation, and T(t) is a time duration since the current data transfer rate was last updated.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2016
From: MUNSON, MICHELLE CHRISTINE; SIMU, SERBAN; XU, YING
To: ASPERA, INC.
Reel/Frame 037765/0834 →
NUNC PRO TUNC ASSIGNMENT Recorded Feb 18, 2016
From: ASPERA, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037848/0787 →
Continuity (4)
Continuation 14227939 · Mar 27, 2014
Continuation 12718233 · Mar 5, 2010
Provisional Application 61158000 · Mar 6, 2009
Related Publication 20160191397A1 · Jun 30, 2016