IP Library Granted Patent US 8,560,693
Granted Patent B1
US 8,560,693 · App. 11/924,511 · Granted Oct 15, 2013

Method of and system for allocating resources to resource requests based on application of persistence policies

Inventors: Wei Wang (San Jose, CA); Hui Zhang (Cupertino, CA); Erik De La Iglesia (Mountain View, CA); Ricky K. Lowe (Atherton, CA); Kiet Tran (Saratoga, CA); Mark Aaron Wallace (San Jose, CA)
Assignee: Extreme Networks, Inc.
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,560,693
App. No.
11/924,511
Granted
Oct 15, 2013
Kind
B1
Abstract

A system for and method of allocating a resource to a service request based on application of a persistence policy is described. In one embodiment, upon or after allocation of a resource to a resource request, an entry representing the allocation is made in a data structure using a first index derived from information relating to the resource request if such is available. An entry representing the allocation is also made in the data structure using a second index derived from information relating to the resource request. When a resource request is received, the data structure is accessed using the first index if such is available. If an entry corresponding to the first index is available, the resource corresponding to the entry is allocated to the request. If the first index or an entry corresponding to the first index is unavailable, the data structure is accessed using the second index. If an entry corresponding to the second index is available, the resource corresponding to the entry is allocated to the request. If an entry corresponding to the second index is unavailable, a resource is allocated to the request based on application of a load balancing policy or other persistence policy. One or more entries are then made in the table corresponding to the new allocation.

Claims (43)

1. A system for maintaining a data structure useful for allocating a resource to a resource request based on application of a persistence policy comprising:

first hardware logic for making an entry in the data structure representing an allocation, upon or after implementation of the allocation, and time-stamping the entry with a time-stamp indicating the time when or about when the allocation is terminated; and

second logic for scanning the data structure, and deleting entries for which a time-out condition is determined to exist, wherein the second logic has access to a current time, and determines that a time-out condition exists if the time-stamp value equals or exceeds the current time by a programmable amount, and

wherein the programmable amount is programmable according to factors including:

whether a connection corresponding to the entry is a layer 4 or layers 5-7 connection,

category of service requested by the resource request, and

state of the connection corresponding to the entry in the data structure.

2. The system of claim 1 , wherein the second logic repetitively scans the data structure.

3. The system of claim 1 , wherein the second logic periodically scans the data structure.

4. The system of claim 1 , wherein the data structure maintains a global listing of current and recently expired connections.

5. The system of claim 1 , wherein the resource is a server, and wherein the allocation is represented by a connection.

6. A system for making an entry in a data structure representing an allocation, the data structure being useful for allocating a resource to a resource request based on application of a persistence policy, the system comprising:

first hardware logic for deriving a first index from information relating to the resource request if such information is available, and using the first index to make an entry in the data structure representing the allocation if the first index is available; and

second logic for deriving a second index from information relating to the resource request, and using the second index to make an entry in the data structure representing the allocation,

wherein the first hardware logic derives the first index by applying a hashing function to a hashing key derived from a session or cookie identifier derived from a packet spawning the resource request, and

wherein if no entries are found corresponding to the first index and the second index then the resource is allocated according to a load balancing policy.

7. The system of claim 6 , wherein the data structure is a history table.

8. The system of claim 6 wherein the first hardware logic derives each of the first and second indices by applying a hashing function to information derived from the resource request.

9. The system of claim 6 , where the second logic derives the second index by applying a hashing function to a hashing key derived from a client IP address derived from a packet spawning the resource request.

10. The system of claim 6 , wherein the second index is used to make an entry in the data structure when the first index is unavailable.

11. The system of claim 6 , wherein when a session or cookie identifier is available from the packet corresponding to the resource request, the first index is derived, and wherein when the first index is derived, the second index is derived from a client IP address of the packet and is used to make a second entry in the data structure to represent the newly created connection.

12. The system of claim 6 , wherein the second index is derived from client IP address of the packet.

13. The system of claim of claim 6 , wherein if session or cookie information is available in the packet, the first index is derived from the session or cookie information.

14. The system of claim 6 , if the first and second entries fail to yield, and no other persistence policy applies, a resource is allocated according to the load balancing policy.

15. A method of maintaining a data structure useful for allocating a resource to a resource request based on application of a persistence policy comprising:

making an entry in the data structure representing an allocation, and time-stamping the entry with a time-stamp indicating the time when or about when the allocation is terminated; and

scanning the data structure, and deleting entries for which a time-out condition is determined to exist, and

determining that the time-out condition exists if the time-stamp value equals or exceeds the current time by a programmable amount, wherein the programmable amount is programmable according to factors including:

whether the connection corresponding to the entry is a layer 4 or layers 5-7 connection,

category of service requested by the resource request, and

state of the connection corresponding to the entry in the data structure.

16. The method of claim 15 further comprising repetitively scanning the data structure.

17. The method of claim 15 further comprising periodically scanning the data structure.

18. A method of making an entry in a data structure representing an allocation, the data structure being useful for allocating a resource to a resource request based on application of a persistence policy, the method comprising:

deriving a first index from information relating to the resource request if such information is available;

using the first index to make an entry in the data structure representing the allocation if the first index is available;

deriving a second index from information relating to the resource request; and

using the second index to make an entry in the data structure representing the allocation,

wherein deriving the first index is performed by applying a hashing function to a hashing key derived from a session or cookie identifier derived in turn from a packet spawning the resource request, and

wherein if no entries are found corresponding to the first index and the second index then the resource is allocated according to a load balancing policy.

19. The method of claim 18 , wherein the data structure is a history table.

20. The method of claim 18 further comprising deriving each of the first and second indices by applying a hashing function to information derived from a packet spawning the resource request.

21. The method of claim 18 further comprising deriving the second index by applying a hashing function to a hashing key derived from a client IP address derived in turn from a packet spawning the resource request.

Assignments (10)
RELEASE OF PATENT AND TRADEMARK SECURITY INTEREST AT REEL/FRAME NO. 46050/0546 Recorded Jul 30, 2026
From: BANK OF MONTREAL, AS AGENT
To: EXTREME NETWORKS, INC.
Reel/Frame 076081/0088 →
SECURITY INTEREST Recorded Jul 29, 2026
From: EXTREME NETWORKS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 076078/0590 →
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2016
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 040521/0762 →
SECURITY AGREEMENT Recorded Jul 27, 2015
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 036189/0284 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2013
From: WANG, WEI; ZHANG, HUI; DE LA IGLESIA, ERIK; LOWE, RICKY K.; TRAN, KIET; WALLACE, MARK AARON
To: EXTREME NETWORKS, INC.
Reel/Frame 031110/0830 →
Continuity (3)
Division 10075051 · Feb 12, 2002
Continuation 10098957 · Feb 11, 2002
Provisional Application 60355922 · Feb 11, 2002