Arbitrating an appropriate back-end server to receive channels of a client session
First Claim
1. At a computer system including a load balancing service, a method for arbitrating an appropriate back-end server to receive channels of a client session, the method comprising:
- an act of the load balancing service receiving an first arbitration order value from a first front-end server that received a first channel of the client session, the first arbitration order value representing an arbitration mechanism for a first back-end server that the first front-end server is promoting as the appropriate back-end server to receive channels of the client session, the first arbitration order being a first universally unique identifier;
an act of the load balancing service receiving an second arbitration order value from a second front-end server that received a second channel of the client session, the second arbitration order value representing an arbitration mechanism for a second back-end server that the second front-end server is promoting as the appropriate back-end server to receive channels of the client session, the second arbitration order being a second universally unique identifier;
an act of the load balancing service comparing the first arbitration order value to the second arbitration order value; and
an act of the load balancing service selecting the first back-end server as the appropriate backend server to receive channels of the client session based on the results of the comparison by the load balancing service.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for arbitrating an appropriate back-end server to receive channels of a client connection. Each front-end server in a server farm specifies a back-end server in the server farm that it deems appropriate for receiving channels of a client connection. Each specified back-end server is represented by an arbitration order, for example, a universally unique identifier. A relevant set of potential back-end servers that can receive channels of a client connection is selected according to function configured to minimize performance impact. A load balancing service compares arbitration orders for different back-end servers in the set of potential back-end servers to determine an appropriate back-end server for receiving channels of the client connection.
-
Citations
20 Claims
-
1. At a computer system including a load balancing service, a method for arbitrating an appropriate back-end server to receive channels of a client session, the method comprising:
-
an act of the load balancing service receiving an first arbitration order value from a first front-end server that received a first channel of the client session, the first arbitration order value representing an arbitration mechanism for a first back-end server that the first front-end server is promoting as the appropriate back-end server to receive channels of the client session, the first arbitration order being a first universally unique identifier;
an act of the load balancing service receiving an second arbitration order value from a second front-end server that received a second channel of the client session, the second arbitration order value representing an arbitration mechanism for a second back-end server that the second front-end server is promoting as the appropriate back-end server to receive channels of the client session, the second arbitration order being a second universally unique identifier;
an act of the load balancing service comparing the first arbitration order value to the second arbitration order value; and
an act of the load balancing service selecting the first back-end server as the appropriate backend server to receive channels of the client session based on the results of the comparison by the load balancing service. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for arbitrating an appropriate back-end server for receiving channels of a client session, the system comprising:
-
a plurality of front-end servers, a plurality of back-end servers configured to receive channels of client sessions from the plurality of front-end servers;
a plurality of load balancing services communicatively coupled to he plurality of front-end servers and communicatively coupled to the plurality of back-end servers;
each front-end server configured to;
create a desired order of one or more back-end servers from the plurality of back-end servers, a back-end server'"'"'s position in the desired order indicating the back-end server'"'"'s appropriateness, from the perspective of the front-end server, for receiving channels of the client session;
extract a relevant set of back-end servers from the desired order, the relevant set being a subset of the back-end servers included in the desired order;
promote a specified contender back-end server to one or more load balance services from the plurality of load balancing services as the most appropriate back-end server to receive channels of the client session; and
accept and rollback locks at load balancing services; and
each load balancing service configured to;
grant and deny locks to front-end servers for contender back-end servers selected for receiving channels of the client connection;
receive arbitration orders from front-end servers, the arbitration orders promoting contender back-end servers, arbitration orders being universally unique identifiers representing the appropriateness of a contender back-end server for receiving channels of the client session;
compare arbitration orders corresponding to different contender back-end servers; and
install a highest ranking contender back-end server based on the results of comparing arbitration orders. - View Dependent Claims (15, 16)
-
-
17. In a server farm including at least one front-end server, a method for identifying a relevant set of back-end servers to use in arbitrating an appropriate back-end server to receive channels of a client connection, the method comprising:
-
an act of creating a desired order of a plurality of back-end servers according to a global function, the global function configured to receive a client ID and Server ID as input and configured to provide an indication of how appropriate a back-end server is for receiving channels of a client session as output; and
an act of selecting a relevant set of one or more appropriate back-end servers from the desired order of back-end servers, the relevant set being a subset of the back-end servers included in the desired order, the relevant set selected according to a second function that limits the size of the relevant set such that the performance impact on the server farm is minimized. - View Dependent Claims (18, 19)
-
-
20. The method as recited in claim 20, wherein each of the front-end servers and back-end servers are included in a common server farm.
Specification