Global-results processing matrix for processing queries
First Claim
1. A system for processing at least one query to at least one database, the system comprising:
- a query server for receiving a query and compiling at least one executable from query language based source code;
a master node being adapted to receive the at least one executable and comprising;
at least one storage device; and
a processor; and
a plurality of slave nodes operably connected to the master node and receiving at least a first portion of the at least one executable from the master node, each slave node comprising;
disk storage for receiving and storing a substantially distinct portion of the database; and
a processor for executing the first portion of the at least one executable on the stored database portion 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 a set of initial query results; and
wherein a 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.
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 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.
-
Citations
78 Claims
-
1. A system for processing at least one query to at least one database, the system comprising:
-
a query server for receiving a query and compiling at least one executable from query language based source code;
a master node being adapted to receive the at least one executable and comprising;
at least one storage device; and
a processor; and
a plurality of slave nodes operably connected to the master node and receiving at least a first portion of the at least one executable from the master node, each slave node comprising;
disk storage for receiving and storing a substantially distinct portion of the database; and
a processor for executing the first portion of the at least one executable on the stored database portion 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 a set of initial query results; and
wherein a 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. - 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. A system for processing at least one query to at least one database, the system comprising:
-
a plurality of processing nodes interconnected via a network and being adapted to execute at least one executable compiled from a query to generate 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 substantially distinct portion of the database; and
a processor for executing a first portion of the at least one executable on the stored database portion 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 a set of initial query results; 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 initial query results generated by the plurality of slave nodes; and
a processor adapted to execute a second portion of the at least one executable on the stored initial query results to generate resultant query results. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A system for processing at least one query to a 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; and
a global-results 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 a first portion of the at least one executable using the stored database portion to generate a portion of initial query results, the first portion of the at least one executable representing at least one database operation on the stored database portion, 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; and
a master node operably connected to the plurality of slave nodes and being adapted to;
store the initial query results on the disk storage of the master node; and
execute a second portion of the at least one executable on the stored 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 initial query results. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61)
-
-
62. A method for processing at least one query to a database distributed among a plurality of slave nodes of a global-results processing matrix, each slave node storing a separate database portion on disk storage, the method comprising the steps of:
-
receiving a query in a query-based language source code and compiling at least one executable from the query source code;
executing, at each slave node, a first portion of at least one executable using the stored database portion to generate a portion of initial 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;
storing the initial query results to disk storage of a master node of the global-results processing matrix; and
executing, at the master node, a second portion of the at least one executable using the stored 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 initial query results. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73)
-
-
74. In a global-results 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, 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 first portion of the at least one executable using the a portion of a database stored at the disk storage of the slave node to generate a portion of initial 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; and
a second set of executable instructions being adapted to manipulate the processor of the master node to execute a 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 (75, 76, 77, 78)
-
Specification