Systems and methods for processing queries
First Claim
1. A system for executing complex procedural queries across a plurality of databases, the system comprising one or more processors configured to function as:
- a query processor configured to iteratively execute a complex procedural query defined using a general-purpose functional programming language, the complex procedural query comprising a top-level complex procedural query and sub-queries;
a set of database adaptors configured to optimize and refer collections of queries, corresponding to the complex procedural query, to external databases; and
a query cache in communication with the query processor and the set of database adaptors, the query cache configured to store results of the external database queries in the query cache and note unresolved data which the complex procedural query needs but does not have;
wherein the query processor is configured to detect a soft failure,wherein the query processor is configured to execute a subsequent iteration of the entire complex procedural query, if unresolved data is noted from a previous iteration of the complex procedural query, using the stored results,wherein the complex procedural query is severable such that at least a first portion of the complex procedural query can proceed even if a second portion of the complex procedural query fails.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to systems and methods for processing queries. One embodiment of the invention provides a system for executing complex procedural queries across a plurality of databases. The system includes: a query processor capable of partial execution of procedural queries; a set of database adaptors capable of optimizing or and referring collections of queries to external databases; and a query cache component in communication with the query processor and the set of database adaptors. The query cache component stores the results of external database queries in a query cache and notes when a query has not been stored and records the same query.
114 Citations
20 Claims
-
1. A system for executing complex procedural queries across a plurality of databases, the system comprising one or more processors configured to function as:
-
a query processor configured to iteratively execute a complex procedural query defined using a general-purpose functional programming language, the complex procedural query comprising a top-level complex procedural query and sub-queries; a set of database adaptors configured to optimize and refer collections of queries, corresponding to the complex procedural query, to external databases; and a query cache in communication with the query processor and the set of database adaptors, the query cache configured to store results of the external database queries in the query cache and note unresolved data which the complex procedural query needs but does not have; wherein the query processor is configured to detect a soft failure, wherein the query processor is configured to execute a subsequent iteration of the entire complex procedural query, if unresolved data is noted from a previous iteration of the complex procedural query, using the stored results, wherein the complex procedural query is severable such that at least a first portion of the complex procedural query can proceed even if a second portion of the complex procedural query fails. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for complex procedural query execution, the method comprising:
-
a. executing an entire complex procedural query defined using a general-purpose functional programming language, detecting a soft failure, indicative that the execution of the query resulted in incomplete information, and noting any unresolved data which the query needs but does not have; b. identifying sub-queries to be executed separately; c. referring unresolved data needs to at least one database adaptor; d. storing resulting responses in a query cache for a future execution; and e. iteratively executing (a), (b), (c), and (d) using the resulting responses until no more soft failures occur, wherein the complex procedural query is severable such that at least a first portion of the complex procedural query can proceed even if a second portion of the complex procedural query fails. - View Dependent Claims (10, 11, 12)
-
-
13. A system for processing complex procedural queries, the system comprising:
-
a query buffer processor for receiving a complex procedural query, including a plurality of sub-queries, for iterated execution, wherein the complex procedural query is expressed using a general-purpose functional programming language; an external memory for storing non-persistent program data and procedures that can be routinely accessed in the course of query execution; a query execution unit (QEU) processor in communication with the query buffer processor and the external memory, the QEU processor configured to iteratively execute the entire complex procedural query by executing the sub-queries of the complex procedural query and combining results of the sub-queries such that incomplete execution of one sub-query does not rule out execution of other independent sub-queries; a device in communication with the QEU processor, the device configured to signal and respond to soft failures, which can terminate one sub-query of the complex procedural query while allowing other independent sub-queries to proceed; a hardware query cache in communication with the QEU processor, the hardware query cache configured to store known query results for immediate retrieval without recourse to at least one external database, to return known query results, and to return a soft failure, indicative that the execution of the complex procedural query resulted in incomplete information, when results are not known without recourse to at least one external database; and a plurality of external database adaptor processors in communication with the hardware query cache, the database adaptor processors configured to optimize a set of independent queries bundled together into a single package, wherein the QEU processor is configured to execute a subsequent iteration of the entire complex procedural query, if a soft failure is returned from a previous iteration of the query, using results of the query obtained in at least one earlier iteration of the query execution until no further soft failures occur, wherein the complex procedural query is severable such that at least a first portion of the complex procedural query can proceed even if a second portion of the complex procedural query fails. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification