IP Library Granted Patent US 7,231,445
Granted Patent B1
US 7,231,445 · App. 09/713,319 · Granted Jun 12, 2007

Technique for adaptively distributing web server requests

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,231,445
App. No.
09/713,319
Granted
Jun 12, 2007
Kind
B1
Abstract

A technique for adaptively distributing a web server request in a system having a plurality of web servers is disclosed. In one embodiment, the technique is realized by first generating a web server request distribution function for each of the plurality of web servers based upon performance measures of each of the plurality of web servers, wherein each of the plurality of web servers is assigned a respective probability range based upon each respective web server request distribution function. A random probability number is then generated for a web server request. The particular probability range encompassing the random probability number is then determined so as to identify the corresponding web server to which the web server request is to be distributed.

Claims (701)

1. A method for adaptively distributing a web server request in a system having a plurality of web servers, the method comprising the steps of:

generating a web server request rejection probability based upon performance measures of each of the plurality of web servers;

admitting a web server request if the web server request rejection probability is less than or equal to a predetermined web server request rejection probability threshold, wherein the web server request is admitted before the web server request is sent or transmitted to a web server;

generating a web server request distribution function for each of the plurality of web servers based upon performance measures of each of the plurality of web servers, each of the plurality of web servers being assigned a respective probability range based upon each respective web server request distribution function, wherein the web server request distribution function for each of the plurality of web servers is based on recursive filtering functions of the performance measures of each of the plurality of web servers, and wherein the recursive filtering functions of the performance measures of each of the plurality of web servers comprises:

f

^

i

,

p

(

n

)

=

(

1

-

η

)

f

^

i

,

p

(

n

-

1

)

+

η

max

{

0

,

ρ

av

(

n

)

-

ρ

i

(

n

)

ρ

max

(

n

)

}

,

0

<

η

<

1

f

^

i

,

q

(

n

)

=

(

1

-

μ

)

f

^

i

,

q

(

n

-

1

)

+

μ

max

{

0

,

q

av

(

n

)

-

q

i

(

n

)

q

max

(

n

)

}

,

0

<

μ

<

1

wherein n represents the sampling time, i represents a web server, ρ i (n) and q i (n) represent performance measures of the ith web server at sampling time n, ρ av (n) and q av (n) represent average of performance measures across all web servers, and ρ max (n) and q max (n) represent the largest of each performance measure;

generating a random probability number for the admitted web server request; and

determining the particular probability range encompassing the random probability number so as to identify the corresponding web server to which the admitted web server request is to be distributed.

2. The method as defined in claim 1 , wherein the random probability number has a value ranging from 0 to 1.

3. The method as defined in claim 1 , wherein the performance measures of each of the plurality of web servers are weighted.

4. The method as defined in claim 3 , wherein the performance measures of each of the plurality of web servers comprise at least one of a web server processor utilization, a web server queue length, a web server memory utilization, a web server response time, a number of web server sessions, and a number of web server connections.

5. The method of claim 1 further comprising the step of rejecting the web server request if the web server request rejection probability is more than a predetermined web server request rejection probability threshold.

6. The method of claim 5 further comprising the step of queuing the rejected web server request if there is room in an admission control queue.

7. The method of claim 1 wherein the performance measures are provided by each of the plurality of web servers.

8. The method of claim 1 wherein the web server request distribution function for each of the plurality of web servers based upon performance measures of each the plurality of web servers, comprises:

f

i

(

n

)

=

f

i

^

(

n

)

j

=

1

N

f

j

^

(

n

)

,

i

=

1

,

2

,

,

N

wherein n represents the sampling time, and i represents a web server.

9. The method of claim 1 wherein the web server request rejection probability is defined as p r (n)=1−p a (n) at sampling interval nΔt, n=1, 2, . . . , wherein p a (n) is probability of accepting the web server request and t is time.

10. The method of claim 1 wherein the web server request is admitted for processing before a web server to which the request is to be delivered to is identified or determined.

11. An apparatus for adaptively distributing a web server request in a system having a plurality of web servers, the apparatus comprising:

a web server request rejection probability generator for generating a web server request rejection probability based upon performance measures of each of the plurality of web servers;

admission control logic for admitting a web server request if the web server request rejection probability is less than or equal to a predetermined web server request rejection probability threshold, wherein the web server request is admitted before the web server request is sent or transmitted to a web server;

a web server request distribution function generator for generating a web server request distribution function for each of the plurality of web servers based upon performance measures of each of the plurality of web servers, each of the plurality of web servers being assigned a respective probability range based upon each respective web server request distribution function, wherein the web server request distribution function for each of the plurality of web servers is based on recursive filtering functions of the performance measures of each of the plurality of web servers, and wherein the recursive filtering functions of the performance measures of each of the plurality of web servers comprises:

f

^

i

,

p

(

n

)

=

(

1

-

η

)

f

^

i

,

p

(

n

-

1

)

+

η

max

{

0

,

ρ

av

(

n

)

-

ρ

i

(

n

)

ρ

max

(

n

)

}

,

0

<

η

<

1

f

^

i

,

q

(

n

)

=

(

1

-

μ

)

f

^

i

,

q

(

n

-

1

)

+

μ

max

{

0

,

q

av

(

n

)

-

q

i

(

n

)

q

max

(

n

)

}

,

0

<

μ

<

1

wherein n represents the sampling time, i represents a web server, ρ i (n) and q i (n) represent performance measures of the ith web server at sampling time n, ρ av (n) and q av (n) represent average of performance measures across all web servers, and ρ max (n) and q max (n) represent the largest of each performance measure;

a random number generator for generating a random probability number for the admitted web server request; and

web server request distribution logic for determining the particular probability range encompassing the random probability number so as to identify the corresponding web server to which the admitted web server request is to be distributed.

12. The apparatus as defined in claim 11 , wherein the random probability number has a value ranging from 0 to 1.

13. The apparatus as defined in claim 11 , wherein the performance measures of each of the plurality of web servers are weighted.

14. The apparatus as defined in claim 13 , wherein the performance measures of each of the plurality of web servers comprise at least one of a web server processor utilization, a web server queue length, a web server memory utilization, a web server response time, a number of web server sessions, and a number of web server connections.

15. The apparatus as defined in claim 11 , wherein the web server request distribution function for each of the plurality of web servers is based on recursive filtering functions of the performance measures of each of the plurality of web servers.

16. The apparatus as defined in claim 11 , wherein the web server request distribution function for each of the plurality of web servers is based on tracking functions of the performance measures of each of the plurality of web servers.

17. The apparatus of claim 11 wherein the web server request is admitted for processing before being delivered to a web server.

18. An article of manufacture for adaptively distributing a web server request in a system having a plurality of web servers, the article of manufacture comprising:

at least one processor readable medium; and

instructions stored on the at least one medium;

wherein the instructions are configured to be readable from the at least one medium by at least one processor and thereby cause the at least one processor to operate so as to:

generate a web server request rejection probability based upon performance measures of each of the plurality of web servers;

admit a web server request if the web server request rejection probability is less than or equal to a predetermined web server request rejection probability threshold, wherein the web server request is admitted before the web server request is sent or transmitted to a web server;

generate a web server request distribution function for each of the plurality of web servers based upon performance measures of each of the plurality of web servers, each of the plurality of web servers being assigned a respective probability range based upon each respective web server request distribution function, wherein the web server request distribution function for each of the plurality of web servers is based on recursive filtering functions of the performance measures of each of the plurality of web servers, and wherein the recursive filtering functions of the performance measures of each of the plurality of web servers comprises:

f

^

i

,

ρ

(

n

)

=

(

1

-

η

)

f

^

i

,

ρ

(

n

-

1

)

+

η

max

{

0

,

ρ

av

(

n

)

-

ρ

i

(

n

)

ρ

max

(

n

)

}

,

0

<

η

<

1

f

^

i

,

q

(

n

)

=

(

1

-

μ

)

f

^

i

,

q

(

n

-

1

)

+

μ

max

{

0

,

q

av

(

n

)

-

q

i

(

n

)

q

max

(

n

)

}

,

0

<

μ

<

1

wherein n represents the sampling time, i represents a web server, ρ i (n) and q i (n) represent performance measures of the ith web server at sampling time n, ρ av (n) and q av (n) represent average of performance measures across all web servers, and ρ max (n) and q max (n) represent the largest of each performance measure;

generate a random probability number for admitted web server request; and

determine the particular probability range encompassing the random probability number so as to identify the corresponding web server to which the admitted web server request is to be distributed.

19. The article of manufacture as defined in claim 18 , wherein the random probability number has a value ranging from 0 to 1.

20. The article of manufacture as defined in claim 18 , wherein the performance measures of each of the plurality of web servers are weighted.

21. The article of manufacture as defined in claim 20 , wherein the performance measures of each of the plurality of web servers comprise at least one of a web server processor utilization, a web server queue length, a web server memory utilization, a web server response time, a number of web server sessions, and a number of web server connections.

22. The article of manufacture as defined in claim 18 , wherein the web server request distribution function for each of the plurality of web servers is based on recursive filtering functions of the performance measures of each of the plurality of web servers.

23. The article of manufacture as defined in claim 18 , wherein the web server request distribution function for each of the plurality of web servers is based on tracking functions of the performance measures of each of the plurality of web servers.

24. A method for adaptively distributing a web server request in a system having a plurality of web servers, the method comprising the steps of:

generating a web server request rejection probability based upon performance measures of each of the plurality of web servers;

admitting a web server request if the web server request rejection probability is less than or equal to a predetermined web server request rejection probability threshold, wherein the web server request is admitted before the web server request is sent or transmitted to a web server;

generating a web server request distribution function for each of the plurality of web servers based upon performance measures of each of the plurality of web servers, each of the plurality of web servers being assigned a respective probability range based upon each respective web server request distribution function, wherein the web server request distribution function for each of the plurality of web servers is based on tracking functions of the performance measures of each of the plurality of web servers, and wherein the tracking functions of the performance measures of each of the plurality of web servers comprises:

f

^

i

,

p

(

n

)

=

max

{

0

,

f

^

i

,

p

(

n

-

1

)

[

1

+

ρ

tar

,

i

-

ρ

i

(

n

)

max

{

ρ

tar

,

i

,

ρ

i

(

n

)

}

]

}

f

^

i

,

q

(

n

)

=

max

{

0

,

f

^

i

,

q

(

n

-

1

)

[

1

+

q

tar

,

i

-

q

i

(

n

)

max

{

q

tar

,

i

,

q

i

(

n

)

}

]

}

wherein n represents the sampling time, i represents a web server, ρ tar,i and q tar,i represent performance targets, and max{ρ tar,i ,ρ i (n) and max{q tar,i ,q i (n) represent normalization terms;

generating a random probability number for the admitted web server request; and

determining the particular probability range encompassing the random probability number so as to identify the corresponding web server to which the admitted web server request is to be distributed.

25. An apparatus for adaptively distributing a web server request in a system having a plurality of web servers, the apparatus comprising:

a web server request rejection probability generator for generating a web server request rejection probability based upon performance measures of each of the plurality of web servers;

admission control logic for admitting a web server request if the web server request rejection probability is less than or equal to a predetermined web server request rejection probability threshold, wherein the web server request is admitted before the web server request is sent or transmitted to a web server;

a web server request distribution function generator for generating a web server request distribution function for each of the plurality of web servers based upon performance measures of each of the plurality of web servers, each of the plurality of web servers being assigned a respective probability range based upon each respective web server request distribution function, wherein the web server request distribution function for each of the plurality of web servers is based on tracking functions of the performance measures of each of the plurality of web servers, and wherein the tracking functions of the performance measures of each of the plurality of web servers comprises:

f

^

i

,

p

(

n

)

=

max

{

0

,

f

^

i

,

p

(

n

-

1

)

[

1

+

ρ

tar

,

i

-

ρ

i

(

n

)

max

{

ρ

tar

,

i

,

ρ

i

(

n

)

}

]

}

f

^

i

,

q

(

n

)

=

max

{

0

,

f

^

i

,

q

(

n

-

1

)

[

1

+

q

tar

,

i

-

q

i

(

n

)

max

{

q

tar

,

i

,

q

i

(

n

)

}

]

}

wherein n represents the sampling time, i represents a web server, ρ tar,i and q tar,i represent performance targets, and max{ρ tar,i ,ρ i (n) and max{q tar,i ,q i (n) represent normalization terms;

a random number generator for generating a random probability number for the admitted web server request; and

web server request distribution logic for determining the particular probability range encompassing the random probability number so as to identify the corresponding web server to which the admitted web server request is to be distributed.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CITICORP USA, INC.
To: AVAYA, INC.; SIERRA HOLDINGS CORP.
Reel/Frame 045045/0564 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 023892/0500 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.
Reel/Frame 044891/0564 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 025863/0535 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST, NA
To: AVAYA INC.
Reel/Frame 044892/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Feb 22, 2011
From: AVAYA INC., A DELAWARE CORPORATION
To: BANK OF NEW YORK MELLON TRUST, NA, AS NOTES COLLATERAL AGENT, THE
Reel/Frame 025863/0535 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2010
From: NORTEL NETWORKS LIMITED
To: AVAYA INC.
Reel/Frame 023998/0878 →
SECURITY AGREEMENT Recorded Feb 5, 2010
From: AVAYA INC.
To: CITICORP USA, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 023905/0001 →
SECURITY AGREEMENT Recorded Feb 4, 2010
From: AVAYA INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 023892/0500 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT ASSIGNMENT OF U.S. PATENT APPLICATION NO. 09/713,319 TO CYNTRUST COMMUNICATIONS, INC. PREVIOUSLY RECORDED ON REEL 013070 FRAME 0828. ASSIGNOR(S) HEREBY CONFIRMS THE ORIGINAL ASSIGNMENT OF U.S. PATENT APPLICATION NO. 09/713,319 TO NORTEL NETWORKS LIMITED, RECORDED AT REEL 011287/FRAME 0903. Recorded Aug 28, 2008
From: SOAR S.K., LIMITED LIABILITY COMPANY
To: NORTEL NETWORKS LIMITED
Reel/Frame 021504/0046 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT ASSIGNMENT OF U.S. PATENT APPLICATION NO. 09/713,319 TO SOAR S.K., LIMITED LIABILITY COMPANY PREVIOUSLY RECORDED ON REEL 019000 FRAME 0341. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF U.S. PATENT APPLICATION NO. 09/713,319 TO NORTEL NETWORKS LIMITED, RECORDED AT REEL 011287/FRAME 0903. Recorded Aug 28, 2008
From: SOAR S.K., LIMITED LIABILITY COMPANY
To: NORTEL NETWORKS LIMITED
Reel/Frame 021456/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2007
From: CYNTRUST COMMUNICATIONS, INC.
To: SOAR S.K., LIMITED LIABILITY COMPANY
Reel/Frame 019000/0341 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2002
From: COMSPACE CORPORATION
To: CYNTRUST COMMUNICATIONS, INC.
Reel/Frame 013070/0828 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2000
From: AWEYA, JAMES; OUELLETTE, MICHEL; MONTUNO, DELFIN Y.; DORAY, BERNARD J.; FELSKE, KENT E.
To: NORTEL NETWORKS LIMITED
Reel/Frame 011287/0903 →