IP Library Granted Patent US 10,169,094
Granted Patent B2
US 10,169,094 · App. 13/095,705 · Granted Jan 1, 2019

Dynamic transaction-persistent server load balancing

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 10,169,094
App. No.
13/095,705
Granted
Jan 1, 2019
Kind
B2
Abstract

The present disclosure describes a system for dynamic transaction-persistent server load balancing. The disclosed system receives a client request associated with a new transaction. In response to receiving the client request, the system dynamically infers relative capacities of a plurality of servers coupled to the device in a network. In particular, the system maintains a set of variables corresponding to the servers. Each variable indicates a number of outstanding requests transmitted from the device to a respective server. The system infers relative server capacities and transmission latencies between the device and the servers based on a comparison of current values of the variables. The system identifies and selects a server associated with high capacity or low transmission latency between the device and the server relative to one or more other servers, and transmits an outstanding request corresponding to the client request from the new transaction to the identified server.

Claims (46)

1. A non-transitory machine readable storage medium having stored thereon machine readable instructions to cause a computer processor to:

receive, at a particular device, a first authentication request corresponding to a client device;

determine, for each of a plurality of servers, a number of outstanding authentication requests;

select a first server, from the plurality of servers, based on the number of outstanding authentication requests for each server of the plurality of servers, and a transmission latency between the particular device and each of the plurality of servers,

wherein the transmission latency is inferred based on the number of outstanding authentication requests for each server among the plurality of servers;

transmit, from the device to the first server:

the first authentication request corresponding to the client device; and

a second authentication request corresponding to the client device in response to a determination that the second authentication request is in a same first transaction as the first authentication request, wherein subsequent requests within the first transaction will be received by the first server;

select a second server, based on the number of outstanding authentication requests, to receive a third authentication request in response to the determination that the third authentication request is in a second transaction different from the previous authentication requests; and

select the first server to receive a fourth authentication request in a third transaction based on the determination that the first and the second authentication requests were completed and the third authentication request is pending.

2. The medium of claim 1 , wherein the authentication request is an access request.

3. The medium of claim 1 , wherein the authentication request is an accounting request.

4. The medium of claim 1 , wherein the number of outstanding authentication requests, for each server of the plurality of servers, correspond to authentication requests that (a) have been transmitted by the particular device, (b) have not expired, and (c) have not received responses.

5. The medium of claim 1 , wherein the instructions to cause the computer processor to select the first server include instructions to select the first server based on inferred capacities of each of the plurality of servers.

6. The medium of claim 1 , wherein the plurality of servers are a plurality of authentication servers.

7. A system comprising:

a particular device including a processing resource; and

a memory resource storing machine readable instructions to cause the processing resource to:

receive, at the particular device, a first authentication request corresponding to a client device;

determine, for each of a plurality of servers, a number of outstanding authentication requests;

select a first server, from the plurality of servers, based on the number of outstanding authentication requests for each server of the plurality of servers, and a transmission latency between the particular device and each of the plurality of servers,

wherein the transmission latency is inferred based on the number of outstanding authentication requests for each server among the plurality of servers;

transmit, from the device to the first server:

the first authentication request corresponding to the client device; and

a second authentication request corresponding to the client device in response to a determination that the second authentication request is in a same first transaction as the first authentication request, wherein subsequent requests within the first transaction will be received by the first server; and

select a second server, based on the number of outstanding authentication requests, to receive a third authentication request in response to the determination that the third authentication request is in a second transaction different from the previous authentication requests; and

select the first server to receive a fourth authentication request in a third transaction based on the determination that the first and the second authentication requests were completed and the third authentication request is pending.

8. The system of claim 7 , wherein the authentication request is an access request.

9. The system of claim 7 , wherein the authentication request is an accounting request.

10. The system of claim 7 , wherein the number of outstanding authentication requests, for each server of the plurality of servers, correspond to authentication requests that (a) have been transmitted by the particular device, (b) have not expired, and (c) have not received responses.

11. The system of claim 7 , wherein the machine readable instructions are to cause the processing resource to select the first server based on inferred capacities of each of the plurality of servers.

12. The system of claim 7 , wherein the plurality of servers are a plurality of authentication servers.

13. A method comprising:

receiving, at a particular device including a hardware processor, a first authentication request corresponding to a client device;

determining, for each of a plurality of servers, a number of outstanding authentication requests;

selecting a first server, from the plurality of servers, based on the number of outstanding authentication requests for each server of the plurality of servers, and a transmission latency between the particular device and each of the plurality of servers,

wherein the transmission latency is inferred based on the number of outstanding authentication requests for each server among the plurality of servers;

transmitting, from the device to the first server:

the first authentication request corresponding to the client device; and

transmitting, from the device to the first server, a second authentication request corresponding to the client device in response to a determination that the second authentication request is in a same first transaction as the first authentication request, wherein subsequent requests within the first transaction will be received by the first server; and

selecting a second server, based on the number of outstanding authentication requests, to receive a third authentication request in response to the determination that the third authentication request is in a second transaction different from the previous authentication requests; and

selecting the first server to receive a fourth authentication request in a third transaction based on the determination that the first and the second authentication requests were completed, and the third authentication request is pending.

14. The method of claim 13 , wherein the authentication request is an access request.

15. The method of claim 13 , wherein the authentication request is an accounting request.

16. The method of claim 13 , wherein the number of outstanding authentication requests, for each server of the plurality of servers, correspond to authentication requests that (a) have been transmitted by the particular device, (b) have not expired, and (c) have not received responses.

17. The method of claim 13 , wherein the selecting operation is further based on inferred capacities of each of the plurality of servers.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2018
From: ARUBA NETWORKS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 045921/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: ARUBA NETWORKS, INC.
Reel/Frame 036379/0274 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2015
From: ARUBA NETWORKS, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 035814/0518 →