Replicated Lock Information for Faster Database Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-node database systems, the time required to determine the set of units of data that need to be redone or undone during failure recovery delays the full availability of the database, as the system is locked until this process is complete.

Innovation Solution

Replicating lock information across nodes allows for quick identification of data blocks that require recovery operations, enabling faster database availability by assigning each instance a recovery instance to perform failure recovery using the replicated information, thus avoiding the need to scan the redo log.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the database system locks the database to determine the set of units of data requiring recovery operations, then the reliability of recovery operations is improved, but the availability of the database system deteriorates

Engineering Contradiction:
Improverecovery operation reliabilityVSAvoiddatabase availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-determining and storing the set of units of data requiring recovery operations in a data structure before failure occurs. This pre-computed information is maintained in memory, allowing the recovery process to immediately access the required data blocks without performing time-consuming analysis during the recovery phase, thus reducing the lock duration while ensuring reliable recovery operations.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the system scans the redo log to determine which changes need to be redone or undone, then the measurement precision of recovery requirements is improved, but the time required for this process increases

Engineering Contradiction:
Improverecovery requirement identification accuracyVSAvoidrecovery determination time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies copying by creating and maintaining a data structure that contains pre-identified information about units of data requiring recovery operations. Instead of scanning the redo log during recovery to determine what needs attention, the system uses this pre-populated data structure that was constructed in advance, significantly reducing the time required to identify recovery requirements while maintaining accurate identification of all necessary data blocks.

Inventive Principle:
Principle #26Copying

3Reliability

If the database system performs complete failure recovery analysis before unlocking, then the reliability of data integrity is improved, but the duration of system unavailability increases

Engineering Contradiction:
Improvedata integrityVSAvoidsystem unavailability duration
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The patent applies preliminary action by pre-identifying and storing in a data structure the complete set of units of data requiring recovery operations before any failure occurs. This pre-computed information includes all data blocks that may need redo or undo operations, allowing the system to quickly determine recovery scope without extensive analysis during the recovery phase, thus maintaining data integrity while minimizing unavailability duration.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10459810B2Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery
Publication Date: 2019.10.29 ORACLE INT CORP
  • US10459810B2 patent drawing
  • US10459810B2 patent drawing
  • US10459810B2 patent drawing

AI summary

Techniques are described herein for quick identification of a set of units of data for which recovery operations are to be performed to redo or undo changes made by the failed node. When a lock is requested by an instance, lock information for the lock request is replicated by another instance. If the instance fails, the other instance may use the replicated lock information to determine a set of data blocks for recovery operations. The set of data blocks is available in memory of a recovery instance when a given node fails, and does not have to be completely generated by scanning a redo log.