# US 8,788,660 B2 · Query execution and optimization with autonomic error recovery from network failures in a parallel computer system with multiple networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,660 B2
- Document ID: US8788660B2
- Status: Granted
- Kind: B2
- Application number: 13/786,430
- Filed: 2013-03-05
- Published: 2013-07-18
- Granted: 2014-07-22
- Earliest claimed: 2007-08-07
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Eric L. Barsness; David L. Darrington; Amanda E. Randles; John M. Santosuosso
- Web page: https://patentgrep.com/patent/US8788660B2

## CPC

- G06F 11/2023: {Failover techniques}
- G06F 16/2453: Query optimisation
- G06F 16/24547: {Optimisations to support specific applications; Extensibility of optimisers}
- G06F 16/24549: {Run-time optimisation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A database query execution monitor determines if a network error or low performance condition exists and then where possible modifies the query. The query execution monitor then determines an alternate query execution plan to continue execution of the query. The query optimizer can re-optimize the query to use a different network or node. Thus, the query execution monitor allows autonomic error recovery for network failures using an alternate query execution. The alternate query execution could also be determined at the initial optimization time and then this alternate plan used to execute a query in the case of a particular network failure.

## Claims

### Claim 1

A computer apparatus comprising:
a plurality of nodes each having a memory and at least one processor;
a database residing in the memory;
a plurality of independent networks connecting the plurality of nodes;
a network monitor that periodically monitors the plurality of independent networks to determine network loading and maintains a network file that contains information about network utilization for the plurality of independent networks;
a query optimizer and a query to the database residing in the memory, wherein the query optimizer optimizes the query by generating an execution plan that includes using a network of the plurality of independent networks to execute the query;
a query execution monitor residing in the memory and executed by the at least one processor, the query execution monitor detects a network failure on the network during execution of the query and in response to the network failure invokes the query optimizer to re-optimize the query by generating an alternate execution plan for the query to use a different independent network to execute the query, where the selection of the different independent network by the query optimizer is based on the information in the network file; wherein the network file is used by the query execution monitor and wherein the network file contains network file information comprising: network ID, a timestamp; current utilization, future utilization, availability, latency, and retransmits.

### Claim 2 (depends on 1)

The computer apparatus of claim 1 wherein the query execution monitor determines part of the query executed prior to the network failure and then modifies the query to utilize data from the part of the query that executed prior to the network failure.

### Claim 3 (depends on 1)

The computer apparatus of claim 1 wherein the query execution monitor determines the network failure based on the information in the network file indicating a network resource is below a threshold.

### Claim 4 (depends on 1)

The computer apparatus of claim 1 further comprising a service node connected to the plurality of nodes that controls the plurality of nodes, and a network monitor that periodically monitors the plurality of independent networks to determine network loading.

### Claim 5 (depends on 1)

The computer apparatus of claim 1 wherein the query optimizer re-optimizes the query for a potential failure and stores an alternate access plan to be used when the query execution monitor detects the occurrence of the potential failure.

### Claim 6

An article of manufacture for executing on a parallel computer system with a plurality of compute nodes connected by a plurality of independent networks comprising:
a query execution monitor performing the steps of:
receiving a query to a database;
optimizing the query, wherein the query optimizer optimizes the query by generating an execution plan that includes using a network of the plurality of independent networks to execute the query;
initiating the query execution;
monitoring the query execution;
monitoring a plurality of independent networks and recording information about network utilization in a network file;
detecting a network failure based on the information in the network file indicating a network resource is below a threshold;
in response to the detected network failure, re-optimizing the query by generating an alternate execution plan for the query to use a different independent network to execute the query where the selection of the different independent network by the query optimizer is based on the information in the network file; wherein the network file contains network file information comprising: network ID, a timestamp; current utilization, future utilization, availability, latency, and retransmits; and
non-transitory computer recordable media in which computer instructions are stored, which instructions, when read by a computer, cause the computer to perform the steps of the query execution monitor.

### Claim 7 (depends on 6)

The article of manufacture of claim 6 wherein the query execution monitor further performs the steps of: determining that part of the query executed prior to the network failure and then modifying the query to utilize data from the part of the query that executed prior to the network failure, where the modifying the query step is done prior to re-optimizing the query.

### Claim 8 (depends on 5)

The article of manufacture of claim 5 wherein the step of monitoring the query is done on a service node connected to a plurality of nodes of a massively parallel computer system with a plurality of network, and a network monitor in the service node periodically monitors the plurality of independent networks to determine the network failure.

### Claim 9 (depends on 6)

The article of manufacture of claim 6 wherein the query optimizer re-optimizes the query for a potential failure and stores an alternate access plan to be used when the query execution monitor detects the occurrence of the potential failure.

### Claim 10

A computer apparatus comprising:
a massively parallel computer system with a plurality of nodes each having a memory and at least one processor;
a plurality of independent networks connecting the plurality of nodes;
a database residing in the memory;
a network monitor that periodically monitors the plurality of independent networks to determine network loading and maintains a network file that contains information about network utilization for the plurality of independent networks;
a query optimizer and a query to the database residing in the memory, wherein the query optimizer optimizes the query by generating an execution plan that includes using a network of the plurality of networks to execute the query;
a query execution monitor residing in the memory and executed by the at least one processor, the query execution monitor detects poor performance of the network during execution of the query and invokes the query optimizer to re-optimize the query by generating an alternate execution plan for the query to use a different network to execute the query where the selection of the different network by the query optimizer is based on the information in the network file; wherein the network file is used by the query execution monitor and wherein the network file contains network file information comprising: network ID, a timestamp; current utilization, future utilization, availability, latency, and retransmits.

### Claim 11 (depends on 10)

The computer apparatus of claim 10 wherein the query execution monitor determines part of the query executed prior to the network failure and then modifies the query to utilize data from the part of the query that executed prior to the network failure.

### Claim 12 (depends on 10)

The computer apparatus of claim 10 wherein the query execution monitor determines the network failure based on the information in the network file indicating a network resource is below a threshold.

### Claim 13 (depends on 10)

The computer apparatus of claim 10 further comprising a service node connected to the plurality of nodes that controls the plurality of nodes, and a network monitor that periodically monitors the plurality of networks to determine network loading.

### Claim 14 (depends on 10)

The computer apparatus of claim 10 wherein the query optimizer re-optimizes the query for a potential failure and stores an alternate access plan to be used when the query execution monitor detects the occurrence of the potential failure.
