Load balancing technique implemented in a data network device utilizing a data cache
First Claim
1. A computer-implemented method for effecting electronic commerce over a data network, the method comprising:
- receiving a block of data from a computing device, the block of data being related to a request from a user;
performing load balancing to assign the block of data from the computing device to a first server of a multi-server system, with a communication session established with the computing device, the multi-server system including at least a second server, with the first server configured to use a first data cache and a database, and with the second server configured to use a second data cache and the database;
storing state data information associated with the communication session in both the first data cache and the database, the state data information including information related to a session identifier for the communication session and request information related to the request;
generating a response to the block of data for responding to the request at the first server, with the response including information regarding the session identifier for the communication session;
transmitting the response to the computing device;
causing a subsequent block of data received from the computing device to be routed to the first server, the subsequent block of data being related to a subsequent request from the user, and including the information regarding the session identifier for the communication session;
detecting a failure at the first server to process the subsequent block of data, wherein the failure is related to a cache miss in the first data cache, with the first data cache not able to provide at least some of the state data information needed by the subsequent request; and
retrieving at least some of the state data information from the database in response to detecting the failure at the first server,wherein accessing at least some of the state data information in the first data cache takes less time than accessing the at least some of the state data information from the database,wherein the first data cache is in the first server, and the second data cache is in the second server,wherein the database is a persistent memory database,wherein the first server has information related to a plurality of products available for purchase from an on-line merchant, andwherein at least one subsequent block of data is related to purchasing a product from the plurality of products via an electronic shopping cart.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for implementing a load balanced server system are described which may be used for effecting electronic commerce over a data network. The system comprises a load balancing system and a plurality of servers in communication with the load balancing system. Each of the plurality of servers may include a respective data cache for storing state information relating to client session transactions conducted between the server and a particular client. The load balancing system can be configured to select, using a load balancing protocol, an available first server from the plurality of servers to process an initial packet received from a source device such as, for example, a client machine of a customer. The load balancing system can also configured to route subsequent packets received from the source device to the first server. Before generating its response, the first server may verify that the state information relating to a specific client session stored in the data cache is up-to-date. If the first server determines that the state information stored in the data cache is not up-to-date, then the first server may be configured to retrieve the desired up-to-date state information from a database which is configured to store all state information relating to client sessions which have been initiated with the server system.
369 Citations
25 Claims
-
1. A computer-implemented method for effecting electronic commerce over a data network, the method comprising:
-
receiving a block of data from a computing device, the block of data being related to a request from a user; performing load balancing to assign the block of data from the computing device to a first server of a multi-server system, with a communication session established with the computing device, the multi-server system including at least a second server, with the first server configured to use a first data cache and a database, and with the second server configured to use a second data cache and the database; storing state data information associated with the communication session in both the first data cache and the database, the state data information including information related to a session identifier for the communication session and request information related to the request; generating a response to the block of data for responding to the request at the first server, with the response including information regarding the session identifier for the communication session; transmitting the response to the computing device; causing a subsequent block of data received from the computing device to be routed to the first server, the subsequent block of data being related to a subsequent request from the user, and including the information regarding the session identifier for the communication session; detecting a failure at the first server to process the subsequent block of data, wherein the failure is related to a cache miss in the first data cache, with the first data cache not able to provide at least some of the state data information needed by the subsequent request; and retrieving at least some of the state data information from the database in response to detecting the failure at the first server, wherein accessing at least some of the state data information in the first data cache takes less time than accessing the at least some of the state data information from the database, wherein the first data cache is in the first server, and the second data cache is in the second server, wherein the database is a persistent memory database, wherein the first server has information related to a plurality of products available for purchase from an on-line merchant, and wherein at least one subsequent block of data is related to purchasing a product from the plurality of products via an electronic shopping cart. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable medium comprising a plurality of instructions for effecting electronic commerce over a data network, the plurality of instructions, when executed by a computing apparatus, result in the computing apparatus:
-
receiving a block of data from a computing device, the block of data being related to a request from a user; performing load balancing to assign the block of data from the computing device to a first server of a multi-server system, with a communication session established with the computing device, the multi-server system including at least a second server, with the first server configured to use a first data cache and a database, and with the second server configured to use a second data cache and the database; storing state data information associated with the communication session in both the first data cache and the database, the state data information including information related to a session identifier for the communication session and request information related to the request; generating a response to the block of data for responding to the request at the first server, with the response including corresponding information regarding the session identifier for the communication session; transmitting the response to the computing device; causing a subsequent block of data received from the computing device to be routed to the first server, the subsequent block of data being related to a subsequent request from the user, and including the information regarding the session identifier for the communication session; detecting a failure at the first server to process the subsequent block of data, wherein the failure is related to a cache miss in the first data cache, with the first data cache not able to provide at least some of the state data information needed by the subsequent request; and retrieving at least some of the state data information from the database in response to detecting the failure at the first server, wherein accessing the at least some of the state data information in the first data cache takes less time than accessing the at least some of the state data information from the database, wherein the first data cache is in the first server, and the second data cache is in the second server, wherein the database is a persistent memory database, wherein the first server has information related to a plurality of products available for purchase from an on-line merchant, and wherein at least one subsequent block of data is related to purchasing a product from the plurality of products via an electronic shopping cart. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A multi-server system for effecting electronic commerce over a network, the multi-server system comprising:
-
a load balancing component; a plurality of servers including a first and a second server, both in communication with the load balancing component, with the first server including a first data cache, and with the second server including a second data cache; and a persistent memory database configured to be coupled to, and used by, at least the first and the second server, wherein the multi-server system is configured to; receive a block of data from a computing device, the block of data being related to a request from a user; perform load balancing to assign the block of data from the computing device to the first server, with a communication session established with the computing device; store state data information associated with the communication session in both the first data cache and the database, the state data information including information related to a session identifier for the communication session and request information related to the request; generate a response to the block of data for responding to the request at the first server, with the response including information regarding the session identifier for the communication session; transmit the response to the computing device; cause a subsequent block of data received from the computing device to be routed to the first server, the subsequent block of data being related to a subsequent request from the user, and including the information regarding the session identifier for the communication session; detecting a failure at the first server, wherein the failure is related to a cache miss in the first data cache, with the first data cache not able to provide at least some of the state data information needed by the subsequent request; and retrieve at least some of the state data information from the database in response to detecting the failure at the first server, wherein accessing the at least some of the state data information in the first data cache takes less time than accessing the at least some of the state data information from the database, wherein the first server has information related to a plurality of products available for purchase from an on-line merchant, and wherein at least one subsequent block of data is related to purchasing a product from the plurality of products via an electronic shopping cart. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
Specification