Apparatus and method for scalable server load balancing
First Claim
Patent Images
1. A method comprising:
- receiving a packet at one dispatcher of a plurality of dispatchers, the plurality of dispatchers coupled with a plurality of servers;
searching a local dispatch table of said one dispatcher;
transmitting the packet from said one dispatcher to a server of the plurality of servers if the local dispatch table identifies the server; and
transmitting the packet from said one dispatcher to a locking dispatcher of the plurality of dispatchers if the local dispatch table includes a client lock, the client lock indicating that communications received from a client are to be transmitted to the locking dispatcher until a server is selected for the client,
wherein;
the client lock is placed in the local dispatch table by said one dispatcher when said one dispatcher determines that there exists no session entry corresponding to the packet and determines that the client lock does not already exist.
2 Assignments
0 Petitions
Accused Products
Abstract
A server hosting system including a server cluster and a plurality of dispatchers, the plurality of dispatchers providing multiple points of entry into the server cluster. The server cluster and plurality of dispatchers are interconnected by a network, such as a system area network. Each of the dispatchers maintains a local dispatch table, and the local dispatch tables of the plurality of dispatchers, respectively, share data over the network.
-
Citations
12 Claims
-
1. A method comprising:
-
receiving a packet at one dispatcher of a plurality of dispatchers, the plurality of dispatchers coupled with a plurality of servers; searching a local dispatch table of said one dispatcher; transmitting the packet from said one dispatcher to a server of the plurality of servers if the local dispatch table identifies the server; and transmitting the packet from said one dispatcher to a locking dispatcher of the plurality of dispatchers if the local dispatch table includes a client lock, the client lock indicating that communications received from a client are to be transmitted to the locking dispatcher until a server is selected for the client,
wherein;the client lock is placed in the local dispatch table by said one dispatcher when said one dispatcher determines that there exists no session entry corresponding to the packet and determines that the client lock does not already exist. - View Dependent Claims (2, 3)
-
-
4. A method comprising:
-
receiving a first packet at one dispatcher of a plurality of dispatchers, the first packet including a connection request from a client; searching for a session entry corresponding to the first packet; if the session entry is not found, creating a client lock on packets received from the client and placing the client lock in a local dispatch table corresponding to said one dispatcher, the client lock indicating that packets received from the client are to be transmitted to said one dispatcher until a server is selected for the client; and broadcasting a dispatch table update from said one dispatcher to all other dispatchers of the plurality of dispatchers, the dispatch table update indicating the client lock; and receiving at least a second packet at another dispatcher of the plurality of dispatchers; and transmitting the second packet from said another dispatcher to said one dispatcher. - View Dependent Claims (5, 6)
-
-
7. An article of manufacture comprising:
a machine accessible medium, the machine accessible medium providing instructions that, when executed by a machine, cause the machine to; receive a packet at one dispatcher of a plurality of dispatchers, the plurality of dispatchers coupled with a plurality of servers; search a local dispatch table of said one dispatcher; transmit the packet from said one dispatcher to a server of the plurality of servers if the local dispatch table identifies the server; and transmit the packet from said one dispatcher to a locking dispatcher of the plurality of dispatchers if the local dispatch table includes a client lock, the client lock indicating that communications received from a client are to be transmitted to the locking dispatcher until a server is selected for the client, wherein; the client lock is placed in the local dispatch table by said one dispatcher when said one dispatcher determines that there exists no session entry corresponding to the packet and determines that the client lock does not already exist. - View Dependent Claims (8, 9)
-
10. An article of manufacture comprising:
-
a machine accessible medium, the machine accessible medium providing instructions that, when executed by a machine, cause the machine to; receive a first packet at one dispatcher of a plurality of dispatchers, the first packet including a connection request from a client; search for a session entry corresponding to the first packet; if the session entry is not found, create a client lock on packets received from the client and placing the client lock in a local dispatch table corresponding to said one dispatcher, the client lock indicating that packets received from the client are to be transmitted to said one dispatcher until a server is selected for the client; broadcast a dispatch table update from said one dispatcher to all other dispatchers of the plurality of dispatchers, the dispatch table update indicating the client lock; and receive at least a second packet at another dispatcher of the plurality of dispatchers; and transmit the second packet from said another dispatcher to said one dispatcher. - View Dependent Claims (11, 12)
-
Specification