Database query optimizer that takes network choice into consideration
First Claim
Patent Images
1. An apparatus comprising:
- at least one processor;
a memory coupled to the at least one processor;
a plurality of network interfaces coupled to a plurality of networks that are coupled to a plurality of nodes, each of the plurality of networks comprising a communication path between at least two of the plurality of nodes, each node comprising at least one processor and memory, a first of the plurality of nodes including first data in a distributed database and a second of the plurality of nodes including second data in the distributed database;
a network monitor that monitors characteristics of the plurality of networks and generates a log of the characteristics of the plurality of networks;
first and second of the plurality of networks that provide alternative network connections to the first node; and
a query optimizer residing in the memory and executed by the at least one processor, the query optimizer logging historical information for queries that indicates past network selection when executing each of the queries, the query optimizer taking network choice into consideration when executing a database query to the distributed database that retrieves the first data and the second data in the distributed database by considering the characteristics of the plurality of networks between the apparatus and the first and second nodes logged by the network monitor and by considering the past network selection in selecting at least one of the plurality of networks for executing the query, wherein the query optimizer selects one of the first and second networks for executing the query based on the historical information that includes which of the first and second networks were used during at least one previous execution of the query and based on information in the log of the characteristics of the plurality of networks that indicates characteristics of the first and second networks.
0 Assignments
0 Petitions
Accused Products
Abstract
In a networked computer system that includes multiple nodes and multiple networks interconnecting the nodes, a database query optimizer takes network choice into consideration when optimizing a query. The query optimizer logs historical information for queries that includes network information. A network monitor determines network characteristics of the multiple networks. The query optimizer then selects a network for a query based on the network characteristics, and optionally based on the historical information as well. The result is a query optimizer that takes network choice into consideration, thereby providing a query that is optimized according to the characteristics of the networks.
-
Citations
14 Claims
-
1. An apparatus comprising:
-
at least one processor; a memory coupled to the at least one processor; a plurality of network interfaces coupled to a plurality of networks that are coupled to a plurality of nodes, each of the plurality of networks comprising a communication path between at least two of the plurality of nodes, each node comprising at least one processor and memory, a first of the plurality of nodes including first data in a distributed database and a second of the plurality of nodes including second data in the distributed database; a network monitor that monitors characteristics of the plurality of networks and generates a log of the characteristics of the plurality of networks; first and second of the plurality of networks that provide alternative network connections to the first node; and a query optimizer residing in the memory and executed by the at least one processor, the query optimizer logging historical information for queries that indicates past network selection when executing each of the queries, the query optimizer taking network choice into consideration when executing a database query to the distributed database that retrieves the first data and the second data in the distributed database by considering the characteristics of the plurality of networks between the apparatus and the first and second nodes logged by the network monitor and by considering the past network selection in selecting at least one of the plurality of networks for executing the query, wherein the query optimizer selects one of the first and second networks for executing the query based on the historical information that includes which of the first and second networks were used during at least one previous execution of the query and based on information in the log of the characteristics of the plurality of networks that indicates characteristics of the first and second networks.
-
-
2. A networked computer system comprising:
-
a plurality of nodes coupled to each other via a plurality of networks, each of the plurality of networks comprising a communication path between at least two of the plurality of nodes, each of the plurality of nodes comprising at least one processor and memory, the plurality of nodes comprising a distributed database with a first node including first data in the distributed database and a second node including second data in the distributed database and a third node; a network monitor that monitors characteristics of the plurality of networks and generates a log of the characteristics of the plurality of networks; first and second of the plurality of networks that provide alternative network connections between the third node and the first node; and a query optimizer executing on the at least one processor of the third node, wherein the query optimizer logs historical information for queries that indicates past network selection when executing each of the queries, wherein the query optimizer takes network choice into consideration when executing a database query to the first and second nodes in the distributed database that retrieves the first data and the second data in the distributed database by considering the characteristics of the plurality of networks between the first, second and third nodes logged by the network monitor and by considering the past network selection in selecting at least one of the plurality of networks for executing the query, wherein the query optimizer selects one of the first and second networks for executing the query based on the historical information that includes which of the first and second networks were used during at least one previous execution of the query and based on information in the log of the characteristics of the plurality of networks that indicates characteristics of the first and second networks. - View Dependent Claims (3, 4, 5, 6, 7)
-
-
8. A program product comprising software residing on non-transitory computer-readable media, the software comprising:
-
a network monitor that monitors characteristics of a plurality of networks and generates a log of the characteristics of the plurality of networks; a query optimizer that takes network choice into consideration when executing a database query to a plurality of nodes in a distributed database that retrieves first data on a first of the plurality of nodes in the distributed database and second data on a second of the plurality of nodes in the distributed database, the plurality of nodes coupled to each other via the plurality of networks, each of the plurality of networks comprising a communication path between at least two of the plurality of nodes in the distributed database, the plurality of networks comprising first and second networks that provide alternative network connections to the first node, the query optimizer considering characteristics of the plurality of networks between the at least two nodes in selecting at least one of the plurality of networks for executing the query, wherein the query optimizer logs historical information for queries that indicates past network selection when executing each of the queries and selects one of the first and second networks for executing the query based on the historical information that includes which of the first and second networks were used during at least one previous execution of the query and based on information in the log of the characteristics of the plurality of networks that indicates characteristics of the first and second networks. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A networked computer system comprising:
-
a first node comprising a first processor and first memory and first data in the first memory; a second node comprising a second processor and second memory and second data in the second memory; a third node comprising a third processor and third memory; the first, second and third nodes coupled together via a plurality of networks, each of the plurality of networks comprising a communication path between at least two of the first, second and third nodes, the first, second and third nodes comprising a distributed database; a network monitor coupled to the plurality of networks, the network monitor monitoring execution of a plurality of database queries to at least two of the first, second and third nodes in the distributed database, the network monitor logging nodes involved in executing each of the plurality of database queries, network used in executing each of the plurality of database queries, and elapsed time in executing each of the plurality of database queries, the network monitor further logging network characteristics for the plurality of networks, the network characteristics comprising current network utilization, predicted future network utilization, and network availability; and a query optimizer that takes network choice into consideration when executing a database query that retrieves the first data in the first node in the distributed database and the second data in the second node in the distributed database by reading historical information logged by the network monitor including the nodes involved in at least one previous execution of the database query, the one or more networks used in the at least one previous execution of the database query, the elapsed time in the at least one previous executions of the database query, the current network utilization for the plurality of networks, the predicted future network utilization for the plurality of networks, and the availability of the plurality of networks, the query optimizer selecting at least one of the plurality of networks for executing the query based on the historical information and based on the network characteristics for the plurality of networks.
-
Specification