Standby Database Synchronization via Placeholder Redo Records

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Standby databases often fail to remain synchronized with primary databases during non-logged workloads, leading to data inconsistency issues when the standby database takes over, due to the high costs and performance problems associated with continuous synchronization.

Innovation Solution

The implementation of placeholder redo records and data block copying, where placeholder redo records are inserted into the redo stream at the primary database, and corresponding data blocks are sent to the standby database, allowing the standby to maintain synchronization even without logging, by applying the data blocks to ensure identical data sets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If continuous synchronization is performed using redo logs, then data consistency between primary and standby databases is maintained, but system overhead and performance degradation occur

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the essential synchronization information (data blocks) from the traditional redo log mechanism. Instead of processing complete redo logs, the system identifies and extracts only the changed data blocks that need to be synchronized to the standby database, reducing the volume of data processed and the associated overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The synchronization process is segmented into identifying changes, extracting data blocks, and transferring only those specific blocks. This segmentation allows the system to avoid the overhead of processing entire redo logs and instead focus only on the minimal necessary data for maintaining consistency.

Inventive Principle:
Principle #1Segmentation

2Productivity

If logging is turned off to reduce synchronization overhead, then system performance improves, but the standby database fails to remain synchronized with the primary database

Engineering Contradiction:
Improvesystem performanceVSAvoiddata synchronization
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary mechanism that operates between the primary and standby databases without requiring full logging. This intermediary identifies changes and facilitates selective data block transmission, enabling synchronization with reduced overhead compared to traditional redo log processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If traditional redo log processing is used, then complete data changes are captured, but significant overhead is incurred from redo generation, archiving, and transport

Engineering Contradiction:
Improvedata completenessVSAvoidsynchronization process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential synchronization information (data blocks) from the traditional redo log mechanism. Instead of processing complete redo logs, the system identifies and extracts only the changed data blocks that need to be synchronized to the standby database, reducing the volume of data processed and the associated overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11010267B2Method and system for automatic maintenance of standby databases for non-logged workloads
Publication Date: 2021.05.18 ORACLE INT CORP
  • US11010267B2 patent drawing
  • US11010267B2 patent drawing
  • US11010267B2 patent drawing

AI summary

A computer program product, system, and computer implemented method for automatic maintenance of standby databases for non-logged workloads, the process comprising: maintaining a redo stream of redo records sent from a primary database to a standby database, identifying a change made at the primary database for which a redo record was not created, inserting a placeholder redo record into the redo stream corresponding to the change identified at the primary database for which the redo record was not created, sending, to the standby database, a copy of one or more data blocks corresponding to the change that is associated with the placeholder redo record, receiving the placeholder redo record from the redo stream, identifying the copy of the one or more data blocks sent from the primary database corresponding to the placeholder redo record, and applying the copy of one or more data blocks to update the standby database.