Distributed load balancing for single entry-point systems
First Claim
1. A method of distributing a processing load in a cluster having a plurality of resources, comprising the steps of:
- (a) designating a first resource as an intake providing a specific type of service for a first session;
(b) directing a plurality of new client requests for the specific type of service by the cluster to the intake to form a first group of clients, wherein each client in the first group continues to receive the specific type of service only from the first resource for as long as the specific type of service is provided;
(c) determining that a second resource be designated as a new intake, to balance the processing load among the plurality of resources;
(d) designating the second resource as the new intake and providing an intake message from the first resource to the plurality of resources in the cluster identifying the second resource as the new intake, wherein the new intake is a single entry-point service resource in the cluster; and
(e) directing successive new client requests for services by the cluster to the new intake to form a second group of clients, wherein each client in the second group continues to receive services only from the second resource for as long as those services are provided.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for distributing work load in a cluster of at least two service resources. Depending upon the configuration, a service resource may be an individual process, such as a single instance of a computer game, or a node on which multiple processes are executing, such as a Server. Initial connection requests from new clients are directed to a single entry-point service resource in the cluster, called an intake. A separate intake is designated for each type of service provided by the cluster. The clients are processed in a group at the service resource currently designated as the intake to which clients initially connected, for the duration of the session. Based upon its loading, the current intake service resource determines that another service resource in the cluster should become a new intake for subsequent connection requests received from new clients. Selection of another service resource to become the new intake is based on the current work load of each resource in the cluster. All resources in the cluster are periodically informed of the resource for each service being provided that was last designated as the intake, and of the current load on each resource in the cluster. Subsequently, new clients requesting a service are directed to the newly designated intake for that service and processed on that resource for the duration of the session by those clients.
112 Citations
36 Claims
-
1. A method of distributing a processing load in a cluster having a plurality of resources, comprising the steps of:
-
(a) designating a first resource as an intake providing a specific type of service for a first session; (b) directing a plurality of new client requests for the specific type of service by the cluster to the intake to form a first group of clients, wherein each client in the first group continues to receive the specific type of service only from the first resource for as long as the specific type of service is provided; (c) determining that a second resource be designated as a new intake, to balance the processing load among the plurality of resources; (d) designating the second resource as the new intake and providing an intake message from the first resource to the plurality of resources in the cluster identifying the second resource as the new intake, wherein the new intake is a single entry-point service resource in the cluster; and (e) directing successive new client requests for services by the cluster to the new intake to form a second group of clients, wherein each client in the second group continues to receive services only from the second resource for as long as those services are provided. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system for distributing a processing load in a cluster, comprising:
-
(a) at least one processor for implementing the cluster, said at least one processor comprising a plurality of resources that provide services to a plurality of clients; (b) an interface for coupling said at least one processor to the plurality of clients; (c) a memory in which a plurality of machine instructions are stored; and (d) said machine instructions, when executed by said at least one processor implementing; (i) a first resource operatively connected to the plurality of clients, said first resource being designated as an intake that accepts requests from new clients for a service, and in response thereto, forms a first group of clients that continue to receive services only from the first resource for as long as those services are provided and are needed; (ii) said first resource determining to designate a second resource from among the plurality of resources as a new intake, the second resource being connected in communication with the first resource; (iii) designating the second resource as the new intake to accept successive new client requests for service, forming a second group of clients that continue to receive services from the second resource for as long as those services are provided and are needed; and (iv) providing an intake message from the first resource to the plurality of resources in the cluster identifying the second resource as the new intake, wherein the new intake is a single entry-point service resource in the cluster. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A method of distributing a processing load among a cluster of nodes, each node providing at least one of a plurality of different types of services, comprising the steps of:
-
(a) designating a first instance of a first type of service on a first node as an intake; (b) directing new client requests for said first type of service to the intake to form a first group of clients, wherein each client in the first group continues to receive services only from the first instance on the first node for as long as those services are provided and are needed; (c) determining that a second instance of the first type of service be designated as a new intake for the first type of service; (d) designating the second instance as the new intake for the first type of service and providing an intake message from the first node designated as the intake for the first instance to the nodes in the cluster identifying the second instance designated as the new intake for the first type of service, wherein the new intake is a single entry-point service resource in the cluster; and (e) directing a plurality of successive new client requests for the first type of service to the new intake to form a second group of clients, wherein each client in the second group continues to receive services only from the second instance for as long as those services are provided and are needed. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A system for distributing a processing load in a cluster of resources, comprising:
-
(a) means for enabling communication between the resources comprising the cluster; (b) means for enabling communication between the resources comprising the cluster and a plurality of clients requesting services from said resources; (c) means for designating a first resource as an intake so that the first resource accepts requests from new clients for a service, and in response thereto, forms a first group of clients that continue to receive the service only from the first resource for as long as the service is provided and needed; (d) means for determining to designate a second resource as a new intake; (e) means for designating a second resource as the new intake so that the second resource begins to accept requests from new clients for the service, and in response thereto, forms a second group of clients that continue to receive the service only from the second resource for as long as the service is provided; and (f) providing an intake message from the first resource to the plurality of resources in the cluster identifying the second resource as the intake, wherein the intake is a single entry-point service resource in the cluster.
-
Specification