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 receiving a 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 receiving a 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 comparing the first arbitration order value to the second arbitration order value to determine whether the first arbitration order value or the second arbitration order value indicates a back-end server that is more appropriate for receiving channels of the client session relative to other back-end servers; and
an act of selecting the first back-end server as the backend server to receive channels of the client session based on the results of the comparison determining that the first arbitration order value indicates a back-end server that is more appropriate for receiving channels of the client session relative to other back-end servers.
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.
37 Citations
16 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 receiving a 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 receiving a 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 comparing the first arbitration order value to the second arbitration order value to determine whether the first arbitration order value or the second arbitration order value indicates a back-end server that is more appropriate for receiving channels of the client session relative to other back-end servers; and an act of selecting the first back-end server as the backend server to receive channels of the client session based on the results of the comparison determining that the first arbitration order value indicates a back-end server that is more appropriate for receiving channels of the client session relative to other back-end servers. - 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)
-
Specification