Multi-instance Redo Apply for Standby Database Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database configurations face performance bottlenecks in redo apply processes for physical standbys, especially in multi-node setups, due to inefficient utilization of hardware resources, leading to increased replication lag and reduced database availability.

Innovation Solution

Implementing a multi-instance redo apply method where each standby instance processes redo records in parallel using non-blocking, single-task threads, with a master coordinator instance for synchronization and an intelligent workload distribution function to minimize communication overhead, allowing concurrent service of read queries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single-node redo apply is used on a physical standby, then the system structure is simple, but the redo apply performance becomes a bottleneck and cannot efficiently utilize hardware resources

Engineering Contradiction:
Improveredo apply performanceVSAvoidsystem structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the redo apply process into multiple independent instances running in parallel on the physical standby. Each redo apply instance processes a subset of redo records independently, allowing the system to utilize multiple CPU cores and hardware resources simultaneously. This segmentation transforms the single-node bottleneck into a multi-node parallel processing architecture, directly resolving the contradiction between simplicity and performance.

Inventive Principle:
Principle #1Segmentation

2Reliability

If a multi-node primary database generates a large volume of redo records, then the data protection capability is enhanced, but the replication lag time increases due to insufficient processing capacity on the standby

Engineering Contradiction:
Improvedata protection capabilityVSAvoidreplication lag time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having each redo apply instance pre-allocate and buffer redo records from the multi-node primary database before full processing is required. This allows the standby to accumulate and pre-process redo records in parallel, reducing the replication lag time while maintaining data protection capability. The parallel instances work ahead of time to minimize the time gap between primary and standby.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If hardware resources are not efficiently utilized on the physical standby, then the system is easier to operate, but the mean time to recovery increases

Engineering Contradiction:
Improvesystem operabilityVSAvoidmean time to recovery
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent implements self-service by enabling each redo apply instance to autonomously manage its own processing queue and resource allocation without requiring complex centralized coordination. The instances automatically distribute and process redo records independently, allowing the system to efficiently utilize hardware resources while maintaining ease of operation. This self-managing parallel architecture reduces mean time to recovery without adding operational complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10642861B2Multi-instance redo apply
Publication Date: 2020.05.05 ORACLE INT CORP
  • US10642861B2 patent drawing
  • US10642861B2 patent drawing
  • US10642861B2 patent drawing

AI summary

A method, apparatus, and system for multi-instance redo apply is provided for standby databases. A multi-instance primary database generates a plurality of redo records, which are received and applied by a physical standby running a multi-instance standby database. Each standby instance runs a set of processes that utilize non-blocking, single-task threads for high parallelism. At each standby instance for the multi-instance redo, the plurality of redo records are merged into a stream from one or more redo strands in logical time order, distributed to standby instances according to determined apply slave processes using an intelligent workload distribution function, remerged after receiving updates from remote instances, and applied in logical time order by the apply slave processes. Redo apply progress is tracked at each instance locally and also globally, allowing a consistent query logical time to be maintained and published to service database read query requests concurrently with the redo apply.