Query optimizer system for heterogenous database computing
View Patent ↗A computer-implemented method for processing database queries includes receiving a query at a query optimizer. A suitability of a plurality of specialized processors for executing the query in a first parallel process is determined, and a suitability of a plurality of specialized database management systems (DBMS) for processing the query in a second parallel process is determined. The suitable specialized processors and the suitable specialized database management systems with the query are correlated using an analytics accelerator. A specialized DBMS and a specialized processor as a recommendation to a primary DBMS is output.
1 . A computer-implemented method for processing database queries comprising:
receiving a query at a query optimizer included in a general database management system (DBMS);
determining a suitability of a plurality of specialized processors for executing the query in a first parallel process;
determining a suitability of a plurality of specialized database management systems (DBMS) for processing the query in a second parallel process;
correlating at least one suitable specialized processor and at least one suitable specialized DBMS with the query, wherein the at least one suitable specialized DBMS and the at least one suitable specialized processor are in communication with the general DBMS;
transferring the query to a specialized DBS of the at least one suitable specialized DBMS and a specialized processor of the at least one suitable specialized processor based on the correlation;
wherein the second parallel process comprises:
determining which specialized DBMS of the plurality of specialized DBMS are eligible to process the query;
determining how often each of the eligible specialized DBMS has processed a similarly structured queries;
determining what data elements of a database are being referenced by the query;
determining an estimated processing time of the query for each eligible specialized DBMS based on the data elements being referenced and how often the eligible specialized DBMS has processed the similarly structured queries;
comparing, for each eligible specialized DBMS a combination of a determined access speed including the estimated processing time of the eligible specialized DBMS and a time for transferring the query to the eligible specialized DBMS to an access speed of the general DBMS; and
assigning execution of the query to a faster of the eligible specialized DBMSs and the general DBMS based on the comparison.
2 . The computer-implemented method of claim 1 , wherein determining the suitability of the plurality of specialized processors for executing the query comprises determining a first specialized processor in the plurality of processors is suitable for executing the query, and the method further comprises executing the query using the first specialized processor.
3 . The computer-implemented method of claim 1 , wherein determining the suitability of the plurality of specialized database management systems (DBMS) for processing the query comprises determining a first specialized DBMS is suitable for processing the query, and the method further comprises executing the query using the first specialized DBMS.
4 . The computer-implemented method of claim 1 , wherein determining the suitability of the plurality of specialized processors for executing the query and determining the suitability of the plurality of specialized database management systems (DBMS) for processing the query in a second parallel process comprises determining that no specialized processors in the plurality of specialized processors are suitable for executing the query and that no specialized DBMS in the plurality of specialized DBMS are suitable for processing the query, and wherein the method further comprises executing the query using a general processor and processing the query using a general DBMS.
5 . The computer-implemented method of claim 1 , wherein the query is a workload of query requests, and wherein the workload of query requests are considered as a single query.
6 . The computer-implemented method of claim 1 , wherein the query optimizer is a software module within a general DBMS.
7 . The computer-implemented method of claim 1 , wherein the specialized DBMS in the plurality of specialized DBMS include corresponding specialized processors of the plurality of specialized processors.
8 . The computer-implemented method of claim 1 , wherein the first parallel process identifies sub queries within the query, identifies a source of the sub queries, and identifies a set of characteristics of the sub queries and compares the characteristics of the sub queries to capabilities of the specialized processors.
9 . The computer-implemented method of claim 8 , wherein the characteristics include a read only status of the sub queries, an input/output (IO) intensity of the sub queries, a processing power requirement of the sub queries, and a presence of extensible markup language (XML) parsing in the sub queries.
10 . The computer-implemented method of claim 1 , further comprising executing the query using the faster of the eligible specialized DBMS.
11 . The computer-implemented method of claim 1 , wherein the plurality of specialized processors are correlated with the plurality of specialized DBMS such that each specialized DBMS includes a specialized processors of the plurality of specialized processors.
12 . A computer system comprising:
a general database management system (DBMS) including a general processor and a memory, the memory storing a query optimizer module;
at least one specialized DBMS in communication with the general DBMS;
at least one specialized processor in communication with the general DBMS;
the query optimizer module being configured to receive a query;
determining a suitability of the at least one specialized processor for executing the query in a first parallel process;
determining a suitability of the at least one specialized DBMS for processing the query in a second parallel process;
transferring the query to a specialized DBMS of the at least one specialized DBMS and a specialized processor of the at least one specialized processor in response to the at least one specialized processor being suitable and the at least one specialized DBMS being suitable;
wherein the second parallel process comprises:
determining which specialized DBMS of the plurality of specialized DBMS are eligible to process the query;
determining how often each of the eligible specialized DBMS has processed a similarly structured query;
determining what data elements of a database are being referenced by the queries;
determining an estimated processing time of the query for each eligible specialized DBMS based on the data elements being referenced and how often the eligible specialized DBMS has processed similarly structured queries;
comparing, for each eligible specialized DBMS, a combination of a determined access speed including the estimated processing time of the eligible specialized DBMS and a time for transferring the query to the eligible specialized DBMS to an access speed of the general DBMS; and
assigning execution of the query to a faster of the eligible specialized DBMSs and the general DBMS based on the comparison.
13 . The computer system of claim 12 , wherein the at least one specialized processor and the at least one specialized DBMS are correlated such that each specialized DBMS in the at least one specialized DBMS includes a corresponding one of the at least one specialized processors.
14 . The computer system of claim 12 , wherein the at least one of the at least one specialized processors is independent of the at least one specialized DBMS.
15 . The computer system of claim 12 , wherein the first parallel process identifies sub queries within the query, identifies a source of the sub queries, and identifies a set of characteristics of the sub queries and compares the characteristics of the sub queries to capabilities of the at least one specialized processor.
16 . The computer system of claim 15 , wherein the characteristics include a read only status of the sub queries, an input/output (IO) intensity of the sub queries, a processing power requirement of the sub queries, and a presence of extensible markup language (XML) parsing in the sub queries.
17 . The computer system of claim 12 , further comprising executing the query using the faster of the eligible specialized DBMS.
18 . The computer system of claim 12 , wherein the at least one specialized processor comprises a plurality of specialized processors.
19 . The computer system of claim 12 , wherein the at least one specialized DBMS comprises a plurality of specialized DBMS.
20 . The computer system of claim 12 , wherein the query is a workload of query requests, and wherein the workload of query requests is considered as a single query.