Network architecture with load balancing, fault tolerance and distributed querying
First Claim
1. A system for responding to requests for data from a client device, the system comprising:
- a first front-end server having an input and output for receiving a request for data from the client device, the first front-end server dividing the request into a plurality of sub-requests;
a plurality of back-end servers each having an input and an output for communication for retrieving data from storage and capable of receiving and responding to a sub-request, the plurality of back-end servers coupled for communication with the first front-end server; and
a database having an input and output for storing information, the database coupled for communication with each of the plurality of back-end servers.
5 Assignments
0 Petitions
Accused Products
Abstract
A network architecture with load balancing, fault tolerance and distributed querying comprises a plurality of front-end servers, a plurality of back-end servers, and a database. The front-end servers are coupled to a network to receive data requests from client devices. The front-end servers are each coupled to the plurality of back-end servers. The front-end servers handle data requests at a macro level and divide the request into sub-requests that are sent to the plurality of back-end servers. The back-end servers are coupled to the database to retrieve data. Each data request is distributed across the plurality of back-end servers according to workload. The front-end servers are fault tolerant in that they can respond to a request for data without all of the back-end servers being responsive or providing data. The present invention also includes a plurality of methods including: a method for distributed querying, a method for loading data sets from a database, and a method for responding to a query that provides fault tolerance.
-
Citations
27 Claims
-
1. A system for responding to requests for data from a client device, the system comprising:
-
a first front-end server having an input and output for receiving a request for data from the client device, the first front-end server dividing the request into a plurality of sub-requests;
a plurality of back-end servers each having an input and an output for communication for retrieving data from storage and capable of receiving and responding to a sub-request, the plurality of back-end servers coupled for communication with the first front-end server; and
a database having an input and output for storing information, the database coupled for communication with each of the plurality of back-end servers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for accessing a web analytics system and responding to a query, the method comprising the steps of:
-
assigning the visitor to one of a plurality of front-end servers;
retrieving a data set for the visitor from a database to a plurality of back-end servers;
notify the front-end server that the data set is loaded to the plurality of back-end servers;
running a query on the dataset;
receiving data from the back-end servers;
combining the data from the back-end severs; and
sending the combined data as the response to the query. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for loading a data set from a database to a plurality of back-end servers, the method comprising the steps of:
-
identifying the data set corresponding to the visitor;
dividing the data set into a plurality of slices;
selecting a slice and sending a request for a back-end sever;
reporting load and availability for the plurality of back-end servers;
selecting the back-end sever with the lowest load; and
loads the selected slice from the database to the selected back-end server. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for responding to a query for data from a client, the method comprising the steps of:
-
receiving a query from a visitor received at a front-end server;
generating by front-end server a broadcast request to a plurality of back-end servers;
receiving the broadcast request at a first back-end server and determining whether the first back-end server holds data for the visitor;
perform the query on the portion of the data for the visitor held by the first back-end server; and
sending result data, the visitor identification number to the front-end server - View Dependent Claims (23, 24, 25, 26, 27)
-
Specification