Hot Spare Node Recovery for Distributed Database Query Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing scale-out systems for distributed database query execution face challenges in fault tolerance and high availability due to node computer failures, leading to disrupted queries and user experience degradation, as they rely on client applications to resubmit queries and do not efficiently handle failures.

Innovation Solution

Implementing a system with hot spare computers that automatically replace failed nodes, allowing for quick and transparent recovery of database query execution by dynamically reallocating query plans and data, thereby minimizing disruption and maintaining system availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If data redistribution is limited to a few node computers using consistent hashing, then system complexity is reduced, but fault tolerance and high availability deteriorate when node failures occur

Engineering Contradiction:
Improvedata redistribution complexityVSAvoidfault tolerance
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system pre-assigns spare node computers to specific data partitions before failures occur. When a node fails, the pre-assigned spare immediately takes over the failed node's partitions without requiring complex real-time redistribution calculations, thus maintaining fault tolerance while keeping the redistribution mechanism simple.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Spare node computers act as intermediaries between failed nodes and the system. These spares are pre-positioned to assume specific partitions, serving as a buffer that simplifies the failure recovery process by eliminating the need for complex dynamic redistribution algorithms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If the system relies on client application logic to handle query failures and resubmissions, then system complexity is reduced, but user experience and system availability deteriorate

Engineering Contradiction:
Improvefailure handling complexityVSAvoiduser experience
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The distributed database system automatically detects node failures, selects appropriate spare nodes, redistributes data partitions, and resumes query execution without requiring client application intervention. This self-service mechanism maintains simplicity while dramatically improving user experience by eliminating query disruptions.

Inventive Principle:
Principle #25Self-service

3Device complexity

If frequent query resubmissions are required after node failures, then system simplicity is maintained, but productivity and user experience deteriorate

Engineering Contradiction:
Improvefailure recovery mechanismVSAvoidquery execution continuity
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system maintains continuous query execution by pre-positioning spare nodes and automatically transferring data partitions upon failure. This ensures that query processing continues uninterrupted, eliminating the productivity loss associated with frequent resubmissions while keeping the recovery mechanism simple.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11455219B2High availability and automated recovery in scale-out distributed database system
Publication Date: 2022.09.27 ORACLE INT CORP
  • US11455219B2 patent drawing
  • US11455219B2 patent drawing
  • US11455219B2 patent drawing

AI summary

Herein are acceleration techniques for resuming offloaded execution by replacing a failed computer with a hot spare computer. In an embodiment, a distributed system configures a DBMS, a set of participating computers, and a set of spare computers. The DBMS receives a query of a database. From the query, an offload query plan is generated for distributed execution. The DBMS sends the offload query plan and a respective portion of the database to each participating computer. The distributed system detects that a participating computer failed after the offload query plan was sent. Responsively, the DBMS sends the same offload query plan and same respective portion of the database of the failed computer to a replacement computer from the spare computers. Despite the computer failure, the DBMS receives results of successful distributed execution of the offload query plan that include a result from the replacement computer.