IP Library Granted Patent US 7,113,993
Granted Patent B1
US 7,113,993 · App. 10/162,716 · Granted Sep 26, 2006

Technique for handling server session requests in a system having a plurality of servers

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,113,993
App. No.
10/162,716
Granted
Sep 26, 2006
Kind
B1
Abstract

A technique for handling server session requests in a system having a plurality of servers is disclosed. In one embodiment, the technique includes receiving a request to create a session on one of the plurality of servers. In response to the request, a primary session is created on a first of the plurality of servers. After the primary session is created, at least one other of the plurality of servers are notified that the primary session has been created. Such notification allows for a backup session on the at least one other of the plurality of servers to take over for the primary session upon a failure on the first of the plurality of servers.

Claims (51)

1. A method for handling a request to create a session on a server in a system having a plurality of servers, the method comprising the steps of:

receiving a request to create a session on one of the plurality of servers;

creating a primary session on a first of the plurality of servers in response to the request; and

notifying at least one other of the plurality of servers that the primary session has been created, such that a backup session on the at least one other of the plurality of servers may take over for the primary session upon a failure of the first of the plurality of servers, wherein the at least one other of the plurality of servers is notified that the primary session has been created prior to failure of the first of the plurality of servers.

2. The method as defined in claim 1 , wherein the step of creating the primary session on the first of the plurality of servers includes the step of:

creating the primary session on the first of the plurality of servers based upon a pre-defined static distribution scheme.

3. The method as defined in claim 1 , wherein the step of creating the primary session on the first of the plurality of servers includes the step of:

creating the primary session on the first of the plurality of servers based upon a relative load on each of the plurality of servers, the relative load on each of the plurality of servers being determined based upon a load metric associated with each of the plurality of servers.

4. The method as defined in claim 3 , further comprising the step of:

determining the load metric associated with each of the plurality of servers based upon a number of requests that each of the plurality of servers has serviced over a period of time.

5. The method as defined in claim 3 , further comprising the step of:

determining the load metric associated with each of the plurality of servers based upon a number of report jobs being processed by each of the plurality of servers at a particular point in time.

6. The method as defined in claim 3 , further comprising the step of:

determining the load metric associated with each of the plurality of servers based upon a number of sessions that are open on each of the plurality of servers at a particular point in time.

7. The method as defined in claim 3 , further comprising the step of:

determining the load metric associated with each of the plurality of servers based upon currently utilized or available resources on each of the plurality of servers at a particular point in time.

8. The method as defined in claim 1 , further comprising the step of:

synchronizing information associated with the operation of the first of the plurality of servers with information associated with the operation of the at least one other of the plurality of servers.

9. A signal embodied in a carrier wave readable by a computing system and encoding a computer program of instructions for executing a computer process performing the method recited in claim 1 .

10. A system for handling a request to create a session on a server in a system having a plurality of servers, the system comprising:

a user engine for receiving a request to create a session on one of the plurality of servers;

a load balancer for determining a first of the plurality of servers upon which a primary session should be created in response to the request; and

a synchronization module for notifying at least one other of the plurality of servers that the primary session has been created, such that a backup session on the at least one other of the plurality of servers may take over for the primary session upon a failure on the first of the plurality of servers, wherein the at least one other of the plurality of servers is notified that the primary session has been created prior to failure of the first of the plurality of servers.

11. The system as defined in claim 10 , wherein the load balancer determines the first of the plurality of servers upon which the primary session should be created based upon a pre-defined static distribution scheme.

12. The system as defined in claim 10 , wherein the load balancer determines the first of the plurality of servers upon which the primary session should be created based upon a relative load on each of the plurality of servers, the relative load on each of the plurality of servers being determined based upon a load metric associated with each of the plurality of servers.

13. The system as defined in claim 12 , wherein the load balancer further determines the load metric associated with each of the plurality of servers based upon a number of requests that each of the plurality of servers has serviced over a period of time.

14. The system as defined in claim 12 , wherein the load balancer further determines the load metric associated with each of the plurality of servers based upon a number of report jobs being processed by each of the plurality of servers at a particular point in time.

15. The system as defined in claim 12 , wherein the load balancer further determines the load metric associated with each of the plurality of servers based upon a number of sessions that are open on each of the plurality of servers at a particular point in time.

16. The system as defined in claim 12 , wherein the load balancer further determines the load metric associated with each of the plurality of servers based upon currently utilized or available resources on each of the plurality of servers at a particular point in time.

17. The system as defined in claim 10 , wherein the synchronization module synchronizes information associated with the operation of the first of the plurality of servers with information associated with the operation of the at least one other of the plurality of servers.

18. An article of manufacture for handling a request to create a session on a server in a system having a plurality of servers, the article of manufacture comprising:

at least one processor readable carrier; and

instructions carried on the at least one carrier;

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

receive a request to create a session on one of the plurality of servers;

create a primary session on a first of the plurality of servers in response to the request; and

notify at least one other of the plurality of servers that the primary session has been created, such that a backup session on the at least one other of the plurality of servers may take over for the primary session upon a failure on the first of the plurality of servers, wherein the at least one other of the plurality of servers is notified that the primary session has been created prior to failure of the first of the plurality of servers.

19. The article of manufacture as defined in claim 18 , wherein the instructions further cause the at least one processor to operate so as to:

create the primary session on the first of the plurality of servers based upon a pre-defined static distribution scheme.

20. The article of manufacture as defined in claim 18 , wherein the instructions further cause the at least one processor to operate so as to:

create the primary session on the first of the plurality of servers based upon a relative load on each of the plurality of servers, the relative load on each of the plurality of servers being determined based upon a load metric associated with each of the plurality of servers.

21. The article of manufacture as defined in claim 20 , wherein the instructions further cause the at least one processor to operate so as to:

determine the load metric associated with each of the plurality of servers based upon a number of requests that each of the plurality of servers has serviced over a period of time.

22. The article of manufacture as defined in claim 20 , wherein the instructions further cause the at least one processor to operate so as to:

determine the load metric associated with each of the plurality of servers based upon a number of report jobs being processed by each of the plurality of servers at a particular point in time.

23. The article of manufacture as defined in claim 20 , wherein the instructions further cause the at least one processor to operate so as to:

determine the load metric associated with each of the plurality of servers based upon a number of sessions that are open on each of the plurality of servers at a particular point in time.

24. The article of manufacture as defined in claim 20 , wherein the instructions further cause the at least one processor to operate so as to:

determine the load metric associated with each of the plurality of servers based upon currently utilized or available resources on each of the plurality of servers at a particular point in time.

25. The article of manufacture as defined in claim 18 , wherein the instructions further cause the at least one processor to operate so as to:

synchronize information associated with the operation of the first of the plurality of servers with information associated with the operation of the at least one other of the plurality of servers.

Assignments (5)
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2003
From: LI, WENFENG
To: MICROSTRATGEGY INCORPORATED
Reel/Frame 014342/0792 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2002
From: CAPPIELLO, SCOTT; LI, BENJAMIN Z.; DU, YI; POLANA, RAMPRASAD; LE, DYUNG V.; VINTON, PATRICK
To: MICROSTRATEGY INCORPORTED
Reel/Frame 013585/0307 →
RELEASE OF SECURITY AGREEMENT Recorded Oct 15, 2002
From: FOOTHILL CAPITAL CORPORATION
To: MICROSTRATEGY INCORPORATED
Reel/Frame 013389/0465 →