Method and system for performing online data queries in a distributed computer system
First Claim
1. An apparatus for performing a data query comprising:
- a computer system having one or more server nodes and a database including data used in connection with performing the data query;
a hardware router for forwarding a request including the data query to one of said server nodes;
a backoffice component for providing data included in the database; and
wherein each of said server nodes includes;
a request router for determining if a request including a data query should be performed by said each server node;
partitioning data used by said request router to determine which of said one or more server nodes should process said request, said partitioning data associating each of said one or more server nodes with a particular portion of a query domain upon which said each server node primarily performs data queries, and said partitioning data including a static file having weighted parameters of the query domain upon which each said server node primarily performs data queries; and
a query cache including data associated with said particular portion of a query domain upon which said each server node primarily performs data queries.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a system for performing online data queries. The system for performing online data queries in a distributed computer system with a plurality of server nodes each fully redundant and capable of processing a user query request. Each server node includes a data query cache and other caches that may be used in performing data queries. The data query, as well as request allocation, is performed in accordance with an adaptive partitioning technique with a bias towards an initial partitioning scheme. Generic objects are created and used to represent business listings upon which the user may perform queries. Various data processing and integration techniques are included which enhance data queries. An update technique is used for synchronizing data updates as needed in updating the plurality of server nodes. A multi-media data transfer technique is used to transfer non-text or multi-media data between various components of the online query tool. Optimizations for searching, such as the common term optimization, are included for those commonly performed data queries. Also disclosed is a system for targeting advertisements that are displayed to a user of the system.
-
Citations
46 Claims
-
1. An apparatus for performing a data query comprising:
-
a computer system having one or more server nodes and a database including data used in connection with performing the data query;
a hardware router for forwarding a request including the data query to one of said server nodes;
a backoffice component for providing data included in the database; and
wherein each of said server nodes includes;
a request router for determining if a request including a data query should be performed by said each server node;
partitioning data used by said request router to determine which of said one or more server nodes should process said request, said partitioning data associating each of said one or more server nodes with a particular portion of a query domain upon which said each server node primarily performs data queries, and said partitioning data including a static file having weighted parameters of the query domain upon which each said server node primarily performs data queries; and
a query cache including data associated with said particular portion of a query domain upon which said each server node primarily performs data queries. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
a second computer system from which said request including said data query is issued; and
a network connecting said second computer system to said first computer system.
-
-
7. The apparatus of claim 6, wherein said network connecting said first and second computer systems is the Internet.
-
8. The apparatus of claim 7, wherein said second computer system includes a browser for communicating said request to a front end server that includes said hardware router, and said first computer system.
-
9. The apparatus of claim 8, wherein each of said server nodes further includes:
one of more parsers for parsing said request and forming data displayed in accordance with said request.
-
10. The apparatus of claim 9, wherein each of said parsers further includes:
-
a parse engine for parsing said request;
a generic object dictionary for facilitating communication between other components of said parser;
a query engine for performing the data query included in the request; and
a data manager for retrieving data to be included in a resultant data set in accordance with said request.
-
-
11. The apparatus of claim 10, wherein each of said server nodes further includes:
-
a page cache for storing resultant data sets displayed in accordance with requests for user queries and a script cache of expanded script files used in producing the resultant data sets.
-
-
12. The apparatus of claim 11, wherein said expanded script files include HTML commands and conditional execution statements for selectively executing a portion of the HTML commands, said conditional execution statements being interpreted as comments to an HTML interpreter and executed by said parse engine.
-
13. The apparatus of claim 12, wherein each of said server nodes further includes:
an advertisement repository for storing advertisements displayed in accordance with a request.
-
14. The apparatus of claim 9, wherein each request router includes:
-
machine instructions for performing updates to parser status information as to the availability of each of said parsers;
machine instructions for associating a request with one of said parsers;
machine instructions for maintaining information regarding system load and configuration information used in routing requests to each of said server nodes.
-
-
15. The apparatus of claim 1, wherein said backoffice component includes:
-
a database server which provides data for said database; and
a server for handling incoming user requests for updates to said database server.
-
-
16. The apparatus of claim 1, wherein said data in said database is stored in a normalized form and a denormalized form, and said data included in said database server of said backoffice component includes data stored in said normalized form.
-
17. The apparatus of claim 1, wherein said each of said server nodes includes a copy of said partitioning data, said partitioning data including one or more static and dynamic components used in routing requests to said server nodes.
-
18. The apparatus of claim 1, wherein said partitioning data includes, for each of said one or more server nodes:
-
said particular portion of said query domain associated with said each server node;
a domain weight representing costs associated with processing a request for said particular portion of said query domain;
a server weight representing a cost associated with processing a request on said each server node; and
an availability status of said each server node.
-
-
19. The apparatus of claim 1, wherein said database includes information organized by business listing.
-
20. The apparatus of claim 1, wherein said one or more server nodes are fully redundant nodes.
-
21. The apparatus of claim 1, wherein said partitioning data is disjoint such that said query domain is disjointly partitioned among said one or more server nodes designating a particular one of said server nodes as being a primary server for performing data queries related to an associated partition of said query domain.
-
22. A method executed in a computer system for performing a data query comprising:
-
forwarding, by a hardware router, a request including the data query to a first of one or more server nodes included in said computer system;
forming partitioning data that associates each of said one or more server nodes with a particular portion of a query domain upon which said each server node primarily performs data queries using data stored in a database, and said partitioning data including a static file having weighted parameters of the query domain upon which each said server node primarily performs data queries;
determining, by a request router using said partitioning data, if said request including said data query should be performed by said first server node, or if said request should be routed to another of said one or more server nodes for processing; and
forming a result data set in accordance with said data query using a query cache, said query cache including data associated with said particular portion of said query domain upon which said first server node primarily performs data queries. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
transmitting data from a backoffice component to said other server node using security software.
-
-
26. The method of claim 22, wherein said one or more server nodes communicate using a network.
-
27. The method of claim 22, wherein said computer system is a first computer system, and further including:
-
issuing said request including said data query from a second computer system; and
connecting said first and second computer systems using a network connection.
-
-
28. The method of claim 27, wherein said network connecting said first and second computer systems is the internet.
-
29. The method of claim 28, further including:
communicating said request to a front end server that includes said hardware router using a browser included in said second computer system.
-
30. The method of claim 29, wherein said first server node includes one or more parsers, each of said one or more parsers performing:
-
parsing said request; and
forming data displayed in accordance with said request.
-
-
31. The method of claim 30, wherein said parsing is performed by a parse engine, and each of said one or more parsers includes a generic object dictionary for facilitating communication between other components of said each parser, said parse engine parsing said request.
-
32. The method of claim 31, further including:
-
storing resultant data sets in a page cache, said resultant data sets being displayed in accordance with requests for user queries and expanding script files into expanded script files used in producing the resultant data sets.
-
-
33. The method of claim 32, wherein said script files include HTML commands and conditional execution statements, and the method further includes:
selectively executing a portion of said HTML commands in accordance with said conditional execution statements, said conditional execution statements being interpreted as comments to an HTML interpreter and executed by said parse engine.
-
34. The method of claim 33, further including:
storing advertisements displayed in accordance with a request in an advertisement repository.
-
35. The method of claim 30, further including:
-
performing updates to parser status information as to the availability of each of said one or more parsers;
associating a request with a first of said parsers; and
maintaining information regarding system load and configuration information used in routing requests to each of said server nodes.
-
-
36. The method of claim 22 further including:
-
providing said data from said database using a database server included in a backoffice component; and
processing incoming user requests for updates to said database server.
-
-
37. The method of claim 22, further including:
storing said data in said database in a normalized form and a denormalized form.
-
38. The method of claim 22, further including:
storing, in each of said server nodes, a copy of said partitioning data, said partitioning data including one or more static and dynamic components used in routing requests to said one or more server nodes.
-
39. The method of claim 22, wherein said partitioning data includes, for each of said one or more server nodes:
- said particular portion of said query domain associated with said each server node;
a domain weight representing costs associated with processing a request for said particular portion of said query domain;
a server weight representing a cost associated with processing a request on said each server node; and
an availability status of said each server node.
- said particular portion of said query domain associated with said each server node;
-
40. The method of claim 22, further including:
storing information in said database organized by business listing.
-
41. The method of claim 22, wherein said one or more server nodes are fully redundant nodes.
-
42. The method of claim 22, wherein said partitioning data is disjoint such that said query domain is disjointly partitioned among said one or more server nodes designating a particular one of said server nodes as being a primary server for performing data queries related to an associated partition of said query domain.
-
43. A computer program product for performing a data query comprising:
-
means for forwarding, by a hardware router, a request including the data query to a first of one or more server nodes;
means for forming partitioning data that associates each of said one or more server nodes with a particular portion of a query domain upon which said each server node primarily performs data queries using data stored in a database, said partitioning data including a static file having weighted parameters of the query domain upon which each said server node primarily performs data queries;
means for determining, by a request router using said partitioning data, if said request including said data query should be performed by said first server node, or if said request should be routed to another of said one or more server nodes for processing; and
means for forming a result data set in accordance with said data query using a query cache, said query cache including data associated with said particular portion of said query domain upon which said first server node primarily performs data queries. - View Dependent Claims (44)
means for parsing said request; and
means for forming data displayed in accordance with said request.
-
-
45. An apparatus for performing a data query comprising:
-
a computer system having one or more server nodes and a database including data used in connection with performing the data query;
a hardware router for forwarding a request including the data query to one of said server nodes;
a backoffice component for providing data included in the database; and
wherein each of said server nodes includes;
a request router for determining if a request including a data query should be performed by said each server node;
partitioning data used by said request router to determine which of said one or more server nodes should process said request, said partitioning data associating each of said one or more server nodes with a particular portion of a query domain upon which said each server node primarily performs data queries;
wherein said partitioning data is disjoint such that said query domain is disjointly partitioned among said one or more server nodes designating a particular one of said server nodes as being a primary server for performing data queries related to an associated partition of said query domain; and
a query cache including data associated with said particular portion of a query domain upon which said each server node primarily performs data queries.
-
-
46. A method executed in a computer system for performing a data query comprising:
-
forwarding, by a hardware router, a request including the data query to a first of one or more server nodes included in said computer system;
forming partitioning data that associates each of said one or more server nodes with a particular portion of a query domain upon which said each server node primarily performs data queries using data stored in a database;
wherein said partitioning data includes, for each of said one or more server nodes;
said particular portion of said query domain associated with said each server node;
a domain weight representing costs associated with processing a request for said particular portion of said query domain;
a server weight representing a cost associated with processing a request on said each server node; and
an availability status of said each server node;
determining, by a request router using said partitioning data, if said request including said data query should be performed by said first server node, or if said request should be routed to another of said one or more server nodes for processing; and
forming a result data set in accordance with said data query using a query cache, said query cache including data associated with said particular portion of said query domain upon which said first server node primarily performs data queries.
-
Specification