Network load balancing with session information
First Claim
1. One or more computer-readable storage media comprising computer-executable instructions stored thereon, the computer-executable instructions, when executed, configuring a system to perform actions comprising:
- acquiring session information for a plurality of session contexts from one or more applications that established the plurality of session contexts, wherein the acquired session information is received from a plurality of hosts;
caching the acquired session information in a distributed table, wherein;
the distributed table utilizes a session identifier for each of the established session contexts acquired in the session information, each session identifier representing an entry in the distributed table; and
each entry identifies an initial host where respective session information was first established;
routing network traffic to the one or more applications responsive to the acquired session information to perform load balancing;
in association with one of a plurality of replication levels, replicating session information for a particular session context of the plurality of session contexts at one or more additional devices based on a hash value derived from a session indicator for the particular session context; and
utilizing the one or more additional devices to preserve session affinity for the particular session context, such that when a client attempts to reestablish the particular session context with the initial host hosting a particular application, the client is mapped to the initial host via a particular session identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
In a first exemplary implementation, one or more processor-accessible media include processor-executable instructions that, when executed, direct a system to perform actions including: receiving host status information from multiple hosts; and making load balancing decisions responsive to the received host status information. In a second exemplary implementation, a system includes: session tracking infrastructure that is adapted to acquire session information; and load balancing infrastructure that is adapted to utilize the session information when routing connection requests to multiple hosts. In a third exemplary implementation, one or more processor-accessible media include processor-executable instructions that, when executed, direct a system to perform actions including: acquiring session information for multiple session contexts from one or more applications that established the multiple session contexts; and routing network traffic to the one or more applications responsive to the acquired session information.
-
Citations
18 Claims
-
1. One or more computer-readable storage media comprising computer-executable instructions stored thereon, the computer-executable instructions, when executed, configuring a system to perform actions comprising:
-
acquiring session information for a plurality of session contexts from one or more applications that established the plurality of session contexts, wherein the acquired session information is received from a plurality of hosts; caching the acquired session information in a distributed table, wherein; the distributed table utilizes a session identifier for each of the established session contexts acquired in the session information, each session identifier representing an entry in the distributed table; and each entry identifies an initial host where respective session information was first established; routing network traffic to the one or more applications responsive to the acquired session information to perform load balancing; in association with one of a plurality of replication levels, replicating session information for a particular session context of the plurality of session contexts at one or more additional devices based on a hash value derived from a session indicator for the particular session context; and utilizing the one or more additional devices to preserve session affinity for the particular session context, such that when a client attempts to reestablish the particular session context with the initial host hosting a particular application, the client is mapped to the initial host via a particular session identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
acquiring session information for a plurality of session contexts from one or more applications that established the plurality of session contexts, wherein the acquired session information is received from a plurality of hosts, each host being connected to a network; caching the acquired session information in a first distributed table located at a first load balancing unit, wherein; the first distributed table utilizes a session identifier for each of the established session contexts acquired in the session information, each session identifier representing an entry in the first distributed table; and each entry identifies an original host where respective session information was first established; replicating the session information for a particular session context of the plurality of session contexts at one or more additional load balancing units, each load balancing unit comprising a distributed table; communicating one or more function calls, wherein the one or more function calls are communicated between the first load balancing unit and at least one of the one or more load balancing units in order to manipulate one or more entries stored in a particular distributed table in association with a replication level; receiving a connection request that references the particular session context of the plurality of session contexts; consulting the cached session information for the connection request, wherein the consulting attempts to identify an entry via the session identifier; and routing the network traffic to the one or more applications responsive to the consulting, wherein the connection request is routed to the original host identified by the entry. - View Dependent Claims (13, 14, 15)
-
-
16. One or more computer-readable storage media comprising computer-executable instructions stored thereon, the computer-executable instructions, when executed, configuring a system to perform actions comprising:
-
acquiring session information for a plurality of session contexts from one or more applications that established each of the plurality of session contexts, wherein the acquired session information is received from a plurality of hosts, each host being connected to a network; caching the acquired session information in a first distributed table located at a first load balancing unit, wherein; the first distributed table utilizes a session identifier for each of the established session contexts acquired in the session information, each session identifier representing an entry in the first distributed table; and each entry identifies an original host where a respective session context was first established; replicating the session information for a particular session context of the plurality of session contexts in association with a replication level, wherein the replication level is selected from a plurality of replication levels, the plurality of replication levels comprising; a first level, wherein the session information for the particular session context is only replicated at a second load balancing unit comprising a second distributed table with a plurality of entries, and is not replicated at a third load balancing unit comprising a third distributed table with a plurality of entries; a second level, wherein the session information for the particular session context is only replicated at the second load balancing unit comprising the second distributed table with a plurality of entries and the third load balancing unit comprising the third distributed table with a plurality of entries, and is not replicated at a fourth load balancing unit comprising a fourth distributed table with a plurality of entries; a third level, wherein the session information for the particular session context is replicated at three or more additional load balancing units, each load balancing unit comprising a distributed table with a plurality of entries; and a fourth level, wherein the session information for the particular session context is replicated at all available load balancing units, each available load balancing unit comprising a distributed table with a plurality of entries; communicating one or more function calls, wherein the one or more function calls are communicated between any two load balancing units to manipulate and identify one or more entries stored thereon, wherein the plurality of entries stored on each of the two load balancing units are not the same; receiving, at the first load balancing unit, a connection request; and consulting the first distributed table for the connection request, wherein the consulting attempts to identify an entry associated with the connection request via the session identifier; in an event the consulting identifies the entry in the first distributed table located at the first load balancing unit, routing the network traffic to the one or more applications associated with the identified entry responsive to the consulting, wherein the connection request is routed to the original host identified by the entry; and in an event the consulting does not identify an entry in the first distributed table located at the first load balancing unit, initiating a function call to one or more other load balancing units in order to identify an entry associated with the connection request. - View Dependent Claims (17, 18)
-
Specification