Parallel Database Node Failure Recovery via Distributed Backup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current relational database management systems face inefficiencies in processing large databases due to shared memory/disk storage bottlenecks, high costs, and limitations in scalability and failure protection, particularly in parallel processing systems.
Innovation Solution
A database management system utilizing a computing matrix with interconnected 'shared nothing' processing nodes, each with separate processors, memory, and storage, and employing high-level programming languages for optimized query execution, along with failover recovery mechanisms for node failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If shared memory/disk storage is used in SMP systems, then processors can access common data, but simultaneous accesses create bottlenecks and delays
Solution Approach 1:
The patent divides the database into multiple partitions, with each processing node assigned to handle specific partitions independently. This segmentation eliminates the need for shared storage access during normal operations, as each node works with its own local data segments, thereby removing the bottleneck caused by simultaneous access to shared memory/disk storage.
Solution Approach 2:
The patent extracts the shared storage component from the parallel processing architecture, replacing it with distributed local storage at each processing node. By removing the shared storage element that causes bottlenecks, the system achieves true parallel processing without processors entering wait states.
2Productivity
If more processors are added to SMP systems, then parallel processing capability increases, but shared storage limits scalability to eight processors or less
Solution Approach 1:
The database system is segmented into multiple autonomous processing nodes, each capable of independent operation. This architectural segmentation allows the system to scale beyond the eight-processor limit of traditional SMP systems, as each node manages its own resources without competing for shared storage bandwidth.
Solution Approach 2:
The patent transitions from a centralized shared-storage architecture to a distributed architecture where storage and processing are co-located at each node. This dimensional change in system architecture enables horizontal scaling by adding more nodes to the distributed network, rather than being constrained by vertical scaling limits of shared resources.
3Adaptability or versatility
If interpreted programming languages are used for database operations, then flexibility in query construction is improved, but processing efficiency decreases due to interpretation overhead
Solution Approach 1:
The patent implements query compilation before execution, where high-level query language instructions are translated into optimized machine code in advance. This preliminary compilation step eliminates the interpretation overhead during actual query execution, while still allowing users to write flexible queries in high-level languages. The compiled code is then executed directly by processing nodes for maximum efficiency.
4Productivity
If SMP systems use proprietary designs for shared resources, then parallel processing is enabled, but development and maintenance costs become prohibitively expensive
Solution Approach 1:
The patent employs standard off-the-shelf hardware components for each processing node, eliminating the need for proprietary SMP hardware designs. Each node uses conventional processors, memory, and storage that can be independently sourced and replaced. This self-service approach to hardware configuration dramatically reduces development, manufacturing, and maintenance costs while maintaining parallel processing capabilities through software coordination.
Data Source
AI summary
A system and method for failure recovery in a multiple processing node system are described herein. Each node can be adapted to store a backup copy of its database portion and/or results to disk storage or memory of at least one other node. In the event of a failure of a node, the replacement node can be adapted to transfer or copy the backup copy of the database portion of the failed node from the failed node's neighbors to the replacement node's disk storage or memory in between database operations. Before the transfer or copy of the backup copy is completed, the replacement node can be adapted to perform database operations in part on the portion of the backup copy the replacement node has already received and in part on the backup copy stored at the neighboring node(s).


