Distributed Storage Layer for Fast Database Crash Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed database systems face challenges in ensuring ACID properties and efficient scaling while maintaining cost-effectiveness and simplicity, particularly due to complexities in managing cache coherency and the high costs associated with replicating large monolithic database systems.

Innovation Solution

The system partitions database functionality into tiers, offloading operations like backup, restore, and recovery to a separate distributed storage layer, where redo log records are processed lazily, reducing network traffic and allowing for asynchronous requests, and implementing a distributed storage system that coalesces data pages independently without blocking write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If database functionality is distributed across multiple nodes using shared nothing or shared disk models, then fault tolerance and durability are improved, but device complexity and deployment cost increase due to the need for glue logic to manage cache coherency and stitch nodes together

Engineering Contradiction:
Improvefault toleranceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the storage functionality from the compute nodes and places it in a separate distributed storage layer. This separation removes the need for glue logic at compute nodes to manage cache coherency and coordinate between nodes, as the storage layer independently manages data consistency and coalesces redo logs without requiring complex inter-node communication protocols

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the database system into distinct compute nodes and storage nodes with clearly defined responsibilities. Compute nodes handle query processing while storage nodes handle data persistence and recovery operations independently. This segmentation allows each component to be optimized separately and eliminates the need for tight coupling through glue logic

Inventive Principle:
Principle #1Segmentation

2Reliability

If large monolithic database systems are replicated on multiple nodes, then fault tolerance is improved, but deployment cost and resource requirements increase

Engineering Contradiction:
Improvefault toleranceVSAvoidresource requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Instead of replicating entire monolithic database systems, the patent copies only the necessary data pages and redo log records to multiple storage nodes. The storage layer coalesces these replicated logs and reconstructs data pages as needed, providing fault tolerance through replication of minimal data structures rather than complete database instances

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent uses inexpensive storage nodes that can be easily replicated and replaced. Rather than deploying expensive high-performance database instances for fault tolerance, the system uses multiple cheaper storage nodes that store redundant copies of data pages and logs, providing durability through quantity rather than individual node performance

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Reliability

If system-wide checkpoints are performed to ensure data consistency, then reliability is improved, but productivity decreases due to checkpoint disruptions during write operations

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite operation throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by continuously appending redo log records to data pages in the storage layer without waiting for system-wide checkpoints. Write operations complete immediately after logs are appended, and data consistency is ensured later during recovery or read operations when logs are coalesced into data pages, eliminating checkpoint-induced write interruptions

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent cushions against consistency requirements by maintaining redundant redo log records in the storage layer before any recovery operation is needed. These pre-stored logs serve as a buffer that allows the system to recover from crashes without requiring disruptive checkpoints, as the logs are already available to reconstruct any lost data pages

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS11030055B2Fast crash recovery for distributed database systems
Publication Date: 2021.06.08 AMAZON TECH INC
  • US11030055B2 patent drawing
  • US11030055B2 patent drawing
  • US11030055B2 patent drawing

AI summary

A distributed database system may implement fast crash recovery. Upon recovery from a database head node failure, a connection with one or more storage nodes of a distributed storage system storing data for a database implemented by the database head node may be established. Upon establishment of the connection with the storage nodes, that database may be made available for access, such as for various access requests. In various embodiments, redo log records may not be replayed in order to provide access to the database. In at least some embodiments, the storage nodes may provide a current state of data stored for the database in response to requests.