IP Library Granted Patent US 7,406,522
Granted Patent B2
US 7,406,522 · App. 09/966,538 · Granted Jul 29, 2008

Dynamic partitioning of network resources

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 7,406,522
App. No.
09/966,538
Granted
Jul 29, 2008
Kind
B2
Abstract

Methods and apparatuses allowing for dynamic partitioning of a network resource among a plurality of users. In one embodiment, the invention involves recognizing new users of a network resource; creating user partitions on demand for new users, wherein the user partition is operable to allocate a portion of a network resource; and, reclaiming inactive user partitions for subsequent new users.

Claims (80)

1. A computer-readable medium stored therein computer-readable instructions executed by a computer processor allowing for the dynamic allocation of network resources among a plurality of users, the computer readable instructions comprising:

a partition management module that

accesses a partition object space in a computer-readable memory, wherein the partition object space stores a plurality of partition objects; the plurality of partition objects including at least one dynamic partition object having at least one attribute defining a first allocation of network bandwidth across all data flows corresponding to the at least one dynamic partition object, and a second attribute defining user partition allocations of the network bandwidth within the first allocation, wherein the user partition allocations are each less than the first allocation; and at least one user partition object having at least one attribute defining an allocation of the network bandwidth across all data flows corresponding to a user,

selects partition objects based on one or more attributes of data flows;

identifies new users based on at least one packet attribute of packets in the data flows;

dynamically creates when a dynamic partition object is selected a user partition object in the partition object space in response to an identification of a new user, wherein the dynamically created user partition object is a child of a selected dynamic partition object and includes an allocation of the network bandwidth according to the second attribute of the selected dynamic partition object, and

a partitioning mechanism that

interfaces with a communication path for transmitting data packets corresponding to a plurality of respective users,

associates users with corresponding user partition objects, and

enforces the respective network bandwidth allocations defined in the dynamic and user partition objects.

2. The computer-readable medium of claim 1 wherein the partition management module is further operative to delete inactive user partition objects from the partition object space.

3. The computer-readable medium of claim 2 wherein the partition management module is operative to reclaim user partition objects from the partition object space as required for new users.

4. The computer-readable medium of claim 2 wherein an inactive user partition object is identified in relation to a threshold period of inactivity.

5. The computer-readable medium of claim 3 wherein an inactive user partition object is identified in relation to a threshold period of inactivity.

6. The computer-readable medium of claim 1 wherein each dynamic partition object is associated with a characteristic of the data packets transmitted in the communication path, wherein the partition management module is operative to identify the dynamic partition object associated with a data packet and create a corresponding user partition object.

7. A computer-readable medium stored therein computer-readable instructions executed by a computer processor allowing for the dynamic allocation of network resources among plurality of users, wherein the network resources and the users are operably connected to a computer network, the computer readable instructions comprising:

a traffic class database storing traffic classes in association with corresponding dynamic partition objects;

wherein the at least one dynamic partition object has at least one attribute defining a first allocation of a network bandwidth to a corresponding traffic class and at least one attribute defining a second allocation, within the first allocation, of the network bandwidth across all data flows corresponding to a user;

wherein the at least one user partition object has at least one attribute defining an allocation of the network bandwidth to a user;

a partitioning mechanism connected to the computer network to receive and transmit data flows,

and to identify a new data flow and the traffic class associated with the new data flow; and,

a partition management module that

accesses a partition object space in a computer-readable memory, wherein the partition object space stores a plurality of partition objects; the plurality of partition objects including at least one dynamic partition object and at least one user partition object; and, in response to the new data flow:

identifies the dynamic partition object associated with the traffic class of the new data flow;

identifies a new user based on one or more attributes of at least one packet of the new data flow;

dynamically create a user partition object as a child of the identified dynamic partition object in the partition object space in response to an identification of a new user according to the at least one attribute of the identified dynamic partition object;

returns the user partition object to the partitioning mechanism;

wherein the partitioning mechanism enforces the allocations defined in the user partition objects to control access to the network bandwidth among a plurality of users.

8. The computer-readable medium of claim 7 wherein the partition management module is further operable to reclaim inactive partition objects from the partition object space.

9. A computer-readable medium stored therein computer-readable instructions executed by a computer processor to dynamically allocate access to a network resource among a plurality of users, the computer-readable instructions comprising:

a partition management module that

accesses a partition object space defined in a computer-readable memory supporting a finite number of partition objects,

identifies new users based on at least one attribute of packets in data flows;

dynamically creates user partition objects in the partition object space, in response to the new users, wherein the partition object space comprises a plurality of partition objects including at least one dynamic partition object having at least one attribute defining a first allocation of a network bandwidth across all data flows corresponding to the at least one dynamic partition object, and a second attribute defining allocations of the network bandwidth within the first allocation;

wherein the dynamically-created user partition object is a child of the dynamic partition object and defines a partition including the second attribute of the dynamic partition object for managing aggregate bandwidth across all data flows corresponding to a given user; and,

a partitioning mechanism enforcing the partitions defined in the partition objects to control access to the network bandwidth among a plurality of users.

10. A computer-implemented method allowing for dynamic allocation of network bandwidth, the method comprising the steps of:

recognizing a new user of a network bandwidth based on one or more attributes of at least one packet in a data flow;

accessing a memory space comprising a plurality of partition objects including a dynamic partition object having at least one attribute defining a first allocation of network bandwidth across all data flows corresponding to the at least one dynamic partition object, and a second attribute defining user partition allocations of the network bandwidth within the first allocation;

selecting a partition object from the plurality of partition objects based on one or more attributes of the data flow; and

if the selected partition object is the dynamic partition object, creating a user partition object as a child of the dynamic partition object on demand for the new user, wherein the user partition object is operable to allocate utilization of the network bandwidth, according to the second attribute defined in the dynamic partition object, across all data flows corresponding to the new user; and,

disposing of the user partition object when no longer needed.

11. The method of claim 10 wherein the disposing step comprises the steps of

reclaiming the user partition object for a subsequent new user if the user partition object is inactive.

12. The method of claim 10 further comprising

receiving a set of parameters defining the dynamic partition object.

13. The method of claim 10 wherein the user partition object is configurable based on a characteristic of the user's utilization of the network bandwidth.

14. The method of claim 10 wherein the user partition object is operable to provide a minimum allocation of the network bandwidth to the new user.

15. The method of claim 10 wherein the user partition object is operable to limit utilization of the network bandwidth.

16. The method of claim 10 wherein the user partition object is implemented by class-based weighted fair queuing functionality.

17. The method of claim 10 wherein the user partition object is implemented by committed access rate functionality.

18. A computer-implemented method allowing for dynamic allocation of network resources, the method comprising the steps of

receiving a set of parameters defining a dynamic the partition object and a partition cap parameter defining a desired limit on the number of user partitions;

recognizing new users of network bandwidth based on one or more attributes of at least one packet in a data flow;

accessing a memory space comprising a plurality of partition objects arranged in a hierarchical partition configuration, the plurality of partition objects including the dynamic partition object having at least one attribute defining a first allocation of the network bandwidth across all data flows corresponding to the dynamic partition object, and a second attribute defining user partition allocations of the network bandwidth within the first allocation;

if a number of existing user partitions does not exceed the partition cap, creating user partition objects on demand for new users, wherein each user partition object is a child of the dynamic partition object and operable to allocate utilization of the network bandwidth, according to the user partition allocation defined by the second attribute, across all data flows corresponding to a user; and,

reclaiming inactive user partition objects for subsequent new users.

19. The method of claim 18 wherein inactive user partitions are reclaimed when necessary for subsequent new users.

20. The method of claim 18 wherein inactive user partitions are reclaimed automatically.

21. The method of claim 18 further comprising the steps of

receiving a set of parameters defining an overflow partition, wherein the overflow partition defines an aggregate allocation of the network bandwidth for data flows associated with users assigned to the overflow partition; and

automatically assigning new users to the overflow partition, if the number of user partitions exceeds the partition cap.

22. A computer-implemented method allowing for dynamic allocation of network resources, the method comprising the steps of

recognizing new users of network bandwidth based on one or more attributes of at least one packet in corresponding data flows;

accessing a partition object space comprising a plurality of partition objects arranged in a hierarchical partition configuration, the plurality of partition objects including a dynamic partition object having a first attribute defining a first allocation of the network bandwidth across all data flows corresponding to the dynamic partition object, and a second attribute defining user partition allocations of the network bandwidth within the first allocation;

selecting partition objects from the plurality of partition objects based on one or more attributes of the data flow; and

for selected partition object that are dynamic partition objects, dynamically creating user partition objects in the partition object space on demand for the new users, wherein each user partition object is a child of the corresponding dynamic partition object and includes the second attribute;

enforcing the allocations of the network bandwidth defined in the dynamic and user partition objects on data flows traversing a network path;

monitoring use of the user partition objects; and,

reclaiming inactive user partition objects in the partition object space for subsequent new users, as needed.

23. A computer-implemented method facilitating the dynamic allocation of network resources, the method comprising the steps of:

recognizing a new user based on one or more attributes of at least one packet in a data flow;

associating a traffic classification to the data flow;

accessing a partition object space comprising a plurality of partition objects arranged in a hierarchical partition configuration, the plurality of partition objects including a dynamic partition object having at least one attribute defining a first allocation of network bandwidth and a second attribute defining user partition allocations of the network bandwidth within the first allocation;

identifying the dynamic partition object based on the traffic classification associated with the data flow;

creating a user partition object as a child of the dynamic partition object on demand for the new user, wherein the user partition object includes an allocation of the network bandwidth for all data flows corresponding to the new user according to the user partition allocation defined by the second attribute of the identified dynamic partition object;

associating the user partition object with the data flow; and,

disposing of the user partition object when no longer needed.

24. The method of claim 23 wherein the disposing step comprises

reclaiming the user partition object for a subsequent new user.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2016
From: BLUE COAT SYSTEMS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 039851/0044 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 039516/0929 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 27727/0144 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035798/0006 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 30740/0181 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035797/0280 →
SECURITY INTEREST Recorded May 22, 2015
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS THE COLLATERAL AGENT
Reel/Frame 035751/0348 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 3, 2013
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 030740/0181 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 027727/0178 Recorded Oct 16, 2012
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 029140/0170 →