Global-results processing matrix for processing queries
First Claim
1. A system for processing at least one query to at least one electronic database, the system comprising:
- a query server for receiving a query and compiling at least one executable from query language based source code, the at least one executable having at least a first portion and a second portion, the first portion configured to generate a portion of initial query results and the second portion configured to execute one or more operations on a set of initial query results;
a first type of processing matrix adapted to perform a database operation on hierarchical data;
a second type of processing matrix adapted to perform an indexing database operation;
a third type of processing matrix adapted to perform a database operation on large amounts of data;
a query agent being adapted to select a type of processing matrix, from at least the first type of processing matrix, the second type of processing matrix, and the third type of processing matrix, to process the query based on at least one database operation to be performed to process the query, wherein each type of processing matrix comprises a master node and a plurality of slave nodes;
the master node of the selected type of processing matrix being adapted to receive the at least one executable and comprising;
at least one storage device; and
a processor; and
the plurality of slave nodes of the selected type of processing matrix operably connected to the master node, each of the plurality of slave nodes receiving at least the same first portion of the at least one executable from the master node, each slave node comprising;
disk storage for receiving and storing a distinct portion of the database wherein the entire database is distributed among the plurality of slave nodes in distinct portions; and
a processor for executing the first portion of the at least one executable on the distinct portion of the database to generate a portion of initial query results;
wherein the plurality of slave nodes executes the first portion of the at least one executable substantially in parallel to generate the set of initial query results;
wherein the second portion of the at least one executable is executed on the initial query results to generate resultant query results, which are stored at the master node; and
wherein the plurality of slave nodes are used to process the query.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and methods for parallel processing of queries to one or more databases are described herein. One or more databases may be distributed among a subset of slave nodes of a global-results processing matrix. A query to the database may be generated using a query-based high-level programming language. The query-based source code then may be converted to intermediary source code in a common programming language and then compiled into a dynamic link library (DLL) or other type of executable. The DLL is then distributed among the slave nodes of the processing matrix, whereupon the slave nodes execute related portions of the DLL substantially in parallel to generate initial query results. The initial query results may then be provided to a master node of the global-results processing matrix for additional processing, whereby the master node is adapted to execute one or more associated portions of the DLL on the initial query results.
51 Citations
81 Claims
-
1. A system for processing at least one query to at least one electronic database, the system comprising:
-
a query server for receiving a query and compiling at least one executable from query language based source code, the at least one executable having at least a first portion and a second portion, the first portion configured to generate a portion of initial query results and the second portion configured to execute one or more operations on a set of initial query results; a first type of processing matrix adapted to perform a database operation on hierarchical data; a second type of processing matrix adapted to perform an indexing database operation; a third type of processing matrix adapted to perform a database operation on large amounts of data; a query agent being adapted to select a type of processing matrix, from at least the first type of processing matrix, the second type of processing matrix, and the third type of processing matrix, to process the query based on at least one database operation to be performed to process the query, wherein each type of processing matrix comprises a master node and a plurality of slave nodes; the master node of the selected type of processing matrix being adapted to receive the at least one executable and comprising; at least one storage device; and a processor; and the plurality of slave nodes of the selected type of processing matrix operably connected to the master node, each of the plurality of slave nodes receiving at least the same first portion of the at least one executable from the master node, each slave node comprising; disk storage for receiving and storing a distinct portion of the database wherein the entire database is distributed among the plurality of slave nodes in distinct portions; and a processor for executing the first portion of the at least one executable on the distinct portion of the database to generate a portion of initial query results; wherein the plurality of slave nodes executes the first portion of the at least one executable substantially in parallel to generate the set of initial query results; wherein the second portion of the at least one executable is executed on the initial query results to generate resultant query results, which are stored at the master node; and wherein the plurality of slave nodes are used to process the query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A system for processing at least one query to at least one electronic database, the system comprising:
-
a first type of processing node adapted to perform a database operation on hierarchical data; a second type of processing node adapted to perform an indexing database operation; a third type of processing node adapted to perform a database operation on large amounts of data; a query agent being adapted to select a type of processing node, from at least the first type of processing node, the second type of processing node, and the third type of processing node, to process the query based on at least one database operation to be performed to process the query, wherein the selected type of processing node comprises a plurality of processing nodes; the plurality of processing nodes being interconnected via a network and being adapted to execute at least one executable compiled from the query to generate results, the at least one executable having at least a first portion and a second portion, the first portion configured to generate a portion of initial query results and the second portion configured to execute one or more operations on a set of initial query results, each processing node comprising a processor, memory operably connected to the processor, disk storage operably connected to the processor and a network interface operably connected to the processor and adapted to facilitate communication with other processing nodes over the network;
the plurality of processing nodes comprising;a plurality of slave nodes, each slave node comprising; disk storage for storing a distinct portion of the database, wherein the entire database is distributed among the plurality of slave nodes in distinct portions; and a processor for executing the same first portion of the at least one executable on the distinct portion of the database to generate the portion of initial query results; wherein the plurality of slave nodes executes the first portion of the at least one executable substantially in parallel to generate the set of initial query results; wherein the plurality of slave nodes are used to process the query; and a master node being adapted to receive the at least one executable and operably connected to the plurality of slave nodes, the master node comprising; at least one storage device storing the set of initial query results generated by the plurality of slave nodes; and a processor adapted to execute the second portion of the at least one executable on the stored set of initial query results to generate resultant query results. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47)
-
-
46. A system for processing at least one query to an electronic database, the system comprising:
-
a query server being adapted to; generate intermediary source code from query source code, the query source code representing at least one database operation performed on the database and wherein the query source code is formatted based in part on a query-based programming language; and compile the intermediary source code to generate at least one executable, the at least one executable having at least a first portion and a second portion, the first portion configured to generate a portion of initial query results and the second portion configured to execute one or more operations on a set of initial query results; and a first type of processing matrix adapted to perform a database operation on hierarchical data; a second type of processing matrix adapted to perform an indexing database operation; a third type of processing matrix adapted to perform a database operation on large amounts of data; and a query agent being adapted to; select a global-results type of processing matrix, from at least the first type of processing matrix, the second type of processing matrix, and the third type of processing matrix, to process the at least one query associated with the query source code based on at least one database operation to be performed to process the query; and the global-results type of processing matrix including; a plurality of slave nodes, each slave node storing on disk storage a different portion of the database and being adapted to execute the same first portion of the at least one executable using the different portion of the database to generate the portion of initial query results, the first portion of the at least one executable representing at least one database operation on the different portion of the database, the plurality of slave nodes executing the first portion of the at least one executable substantially in parallel to generate a set of initial query results, wherein the entire database is distributed among the plurality of slave nodes in distinct portions, and wherein the plurality of slave nodes are used to process the query; and a master node operably connected to the plurality of slave nodes and being adapted to; store the set of initial query results on disk storage of the master node; and execute the second portion of the at least one executable on the stored set of initial query results to generate resultant query results, the second portion of the at least one executable representing at least one database operation on the set of initial query results. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64)
-
-
65. A method for processing at least one query to an electronic database distributed among a plurality of slave nodes of a global-results type of processing matrix, each slave node storing a separate database portion of the database on disk storage, wherein the entire database is distributed among the plurality of slave nodes in distinct portions, the method comprising:
-
receiving a query in a query-based language source code and compiling at least one executable from the query-based language source code, the at least one executable having at least a first portion and a second portion, the first portion configured to generate a portion of initial query results and the second portion configured to execute one or more operations on the set of initial query results; providing a first type of processing matrix adapted to perform a database operating on hierarchical data; providing a second type of processing matrix adapted to perform an indexing database operation; providing a third type of processing matrix adapted to perform a database operation on large amounts of data; selecting the global-results type of processing matrix, from at least the first type or processing matrix, the second type of processing matrix, and the third type of processing matrix, to process the query based on at least one database operation to be performed to process the query; executing, at each slave node, the same first portion of the at least one executable using the stored separate database portion to generate the portion of initial query results, the first portion of the at least one executable representing at least one database operation on the stored separate database portion, the first portion of the at least one executable being executed by the slave node substantially in parallel with an execution of the first portion of the at least one executable by other slave nodes, wherein the plurality of slave nodes are used to process the query; storing the portions of initial query results received from each slave node to disk storage of a master node of the global-results type of processing matrix as the set of initial query results; and executing, at the master node, the second portion of the at least one executable using the stored set of initial query results to generate final query results, the second portion of the at least one executable representing at least one database operation on the set of initial query results. - View Dependent Claims (66, 67, 68, 69, 70, 71, 72, 73, 74, 75)
-
-
76. A system comprising:
-
a first type of processing matrix adapted to perform a database operation on hierarchical data; a second type of processing matrix adapted to perform an indexing database operation; a third type of processing matrix adapted to perform a database operation on large amounts of data; a global-results type of processing matrix, selected from at least the first type of processing matrix, the second type of processing matrix, and the third type of processing matrix, to process a query based on at least one database operation to be performed to process the query, the global-results type of processing matrix including a master node and a plurality of slave nodes, each of the master node and slave nodes including a processor and disk storage, and a computer readable medium, the computer readable medium comprising; a first set of executable instructions being adapted to manipulate the processor of each slave node to execute a same first portion of an at least one executable, the at least one executable having at least a first portion and a second portion, the first portion configured to generate a portion of initial query results and the second portion configured to execute one or more operations on the set of initial query results using a portion of a database stored at the disk storage of the slave node to generate final query results, the first portion of the at least one executable representing at least one database operation on the stored database portion, the first portion being executed by the slave node substantially in parallel with an execution of the first portion by other slave nodes, wherein the entire database is distributed among the plurality of slave nodes in distinct portions and wherein the plurality of slave nodes are used to process the query, the first portion of the at least one executable representing at least one database operation; and a second set of executable instructions being adapted to manipulate the processor of the master node to execute the second portion of the at least one executable using the initial query results to generate final query results, the second portion of the at least one executable representing at least one database operation using the initial query results. - View Dependent Claims (77, 78, 79, 80, 81)
-
Specification