IP Library Granted Patent US 8,918,536
Granted Patent B1
US 8,918,536 · App. 13/969,806 · Granted Dec 23, 2014

Method and apparatus for optimizing computer network usage to prevent congestion

Inventors: Nilesh Girish Telang (Pune Maharashtra, IN); Kevin Elliott Jordan (Vadnais Heights, MN); Nitin Suresh Supekar (Maharashtra, IN)
Assignee: Symantec Corporation
H04L47/25H04L47/12
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 8,918,536
App. No.
13/969,806
Filed
Aug 19, 2013
Granted
Dec 23, 2014
Kind
B1
Art Unit
2449
USPC
709/235
Abstract

A method and apparatus for optimizing computer network bandwidth usage to prevent congestion is described. In one embodiment, the method comprises comparing a permissible bandwidth usage with a data transfer rate to produce a comparison result and adjusting the data transfer rate for performing at least one data transfer operation based on the comparison result.

Claims (127)

1. A method comprising:

determining an action to perform with regard to a backup operation, using a processor of a computer system, wherein

the action is determined based, at least in part, on a bandwidth range of a network connection,

the action is one of a plurality of actions, and

the plurality of actions comprise

performing static throttling, and

performing dynamic throttling, wherein

the dynamic throttling uses a network throttling profile of a plurality of network throttling profiles, and

the performing the dynamic throttling comprises

 comparing a permissible bandwidth usage and a data transfer rate, wherein

 the permissible bandwidth usage is determined using the network throttling profile,

 the backup operation comprises performing a data transfer via the network connection, and

 the data transfer is performed at the data transfer rate, and

 adjusting the data transfer rate based, at least in part, on a result of the comparing.

2. The method of claim 1 , wherein

the bandwidth range is determined based, at least in part, on a hardware configuration of a network adapter, and

the network connection uses the network adapter.

3. The method of claim 2 , wherein

the backup operation is one of a plurality of backup operations, and

the plurality of backup operations share the network adapter.

4. The method of claim 1 , wherein

the backup operation is one of a plurality of backup operations, and

the plurality of backup operations share the network connection.

5. The method of claim 1 , wherein

the static throttling uses a static throttling algorithm.

6. The method of claim 1 , further comprising:

determining the bandwidth range, wherein

the bandwidth range is one of a plurality of bandwidth ranges.

7. The method of claim 6 , wherein

the plurality of network throttling profiles is one of a set of pluralities of network throttling profiles,

each plurality of network throttling profiles of the set of pluralities of network throttling profiles corresponds to one of the plurality of bandwidth ranges, and

the plurality of network throttling profiles corresponds to the bandwidth range.

8. The method of claim 1 , further comprising:

initiating the backup operation; and

if the dynamic throttling is performed,

during the backup operation,

determining a new data transfer rate of the data transfer,

performing the comparing using the new data rate, and

performing the adjusting.

9. The method of claim 1 , wherein the plurality of actions further comprise:

preventing the backup operation from being performed; and

disabling network throttling.

10. The method of claim 1 , wherein

the action is further determined based, at least in part, on at least one of

a network bandwidth available at the time the network backup operation is initiated,

a currently-available network bandwidth, or

a maximum network bandwidth, and

the maximum network bandwidth is a maximum bandwidth supported by a network adapter used by the network connection.

11. The method of claim 10 , further comprising:

determining the currently-available network bandwidth by recalculating the available bandwidth.

12. The method of claim 1 , wherein

the data transfer is from a client to a storage subsystem, and

the network connection is between the client and the storage subsystem.

13. The method of claim 1 , further comprising:

determining a bandwidth of each network connection of one or more network connections of the computer system; and

selecting a network connection of the one or more network connections, wherein

the selecting is based, at least in part, on a bandwidth of the network connection.

14. The method of claim 1 , further comprising:

if the dynamic throttling is performed,

selecting the network throttling profile from the plurality of network throttling profiles, wherein

the network throttling profile is selected based, at least in part, on the bandwidth range of the network connection,

the network throttling profile is based on information regarding the network backup operation,

the network connection is one of a plurality of network connections, and

each of the plurality of network throttling profiles is associated with at least one of the plurality of network connections.

15. The method of claim 14 , further comprising:

if the dynamic throttling is performed,

computing the permissible bandwidth usage, wherein

the permissible bandwidth usage is computed using the network throttling profile,

the permissible bandwidth usage comprises

a portion of available bandwidth of the network connection, and

the network throttling profile identifies the portion.

16. The method of claim 1 , further comprising:

computing the data transfer rate using a total data transmitted statistic and a total time elapsed statistic, wherein

the computing the available bandwidth is performed after expiration of a validity period, and

the adjusting the data transfer rate further comprises

determining a time period for which the performance of the at least one data transfer is paused.

17. The method of claim 1 , further comprising:

identifying the network throttling profile, wherein

the identifying the network throttling profile comprises

determining a network bandwidth of the network connection, wherein

the network bandwidth is based on a configured speed of the network connection,

determining the bandwidth range, wherein

the bandwidth range is determined using the network bandwidth,

the bandwidth range is one of a plurality of bandwidth ranges, and

each of the plurality of bandwidth ranges is associated with at least one of the plurality of network throttling profiles, and

identifying the network throttling profile that is associated with the bandwidth range.

18. An computer system comprising:

a processor;

a non-transitory computer-readable storage medium coupled to the processor; and

a plurality of instructions, encoded in the non-transitory computer-readable storage medium and configured to cause the processor to

determine an action to perform with regard to a backup operation, using a processor of a computer system, wherein

the action is determined based, at least in part, on a bandwidth range of a network connection,

the action is one of a plurality of actions, and

the plurality of actions comprise

performing static throttling, and

performing dynamic throttling, wherein

 the dynamic throttling uses a network throttling profile of a plurality of network throttling profiles, and

 the performing the dynamic throttling comprises

 comparing a permissible bandwidth usage and a data transfer rate, wherein

 the permissible bandwidth usage is determined using the network throttling profile,

 the backup operation comprises performing a data transfer via the network connection, and

 the data transfer is performed at the data transfer rate, and

 adjusting the data transfer rate based, at least in part, on a result of the comparing.

19. The computer system of claim 18 , wherein the instructions are further configured to cause the processor to:

initiate the backup operation; and

if the dynamic throttling is performed,

during the backup operation,

determine a new data transfer rate of the data transfer,

perform the comparing using the new data rate, and

perform the adjusting.

20. A computer program product comprising:

a plurality of instructions, comprising

a first set of instructions, executable on a computer system, configured to

determine an action to perform with regard to a backup operation, using a processor of a computer system, wherein

the action is determined based, at least in part, on a bandwidth range of a network connection,

the action is one of a plurality of actions, and

the plurality of actions comprise

performing static throttling, and

performing dynamic throttling, wherein

 the dynamic throttling uses a network throttling profile of a plurality of network throttling profiles, and

 the performing the dynamic throttling comprises

 comparing a permissible bandwidth usage and a data transfer rate, wherein

 the permissible bandwidth usage is determined using the network throttling profile,

 the backup operation comprises performing a data transfer via the network connection, and

 the data transfer is performed at the data transfer rate, and

 adjusting the data transfer rate based, at least in part, on a result of the comparing; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

Assignments (12)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
Continuity (1)
Continuation 12164787 · Jun 30, 2008