Fine Grain Database Replay Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for replicating a production database workload in a test system either strictly preserve the transaction order, leading to suboptimal processing, or allow out-of-order processing, which can result in data divergence and system breaks, failing to accurately mimic real-world production environments.

Innovation Solution

A technique that captures and replays database workloads based on dependency graphs, allowing commands to be executed in a different order while ensuring data consistency by waiting for dependent commands to complete, thus maintaining data integrity and convergence with the production system state.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the test system strictly preserves the transaction order from the production system, then data consistency is maintained, but processing efficiency deteriorates due to unnecessary waiting

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic transaction ordering by allowing the test system to process transactions in parallel when dependencies permit, rather than strictly following production system order. The synchronization mechanism adapts the execution order based on real-time dependency analysis, enabling efficient parallel processing while maintaining data consistency through fine-grained synchronization points.

Inventive Principle:
Principle #15Dynamics

2Productivity

If the test system allows out-of-order processing to improve efficiency, then processing speed increases, but data divergence occurs leading to system breaks

Engineering Contradiction:
Improveprocessing speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a dependency graph as an intermediary structure that mediates between out-of-order processing and data consistency. This dependency graph captures transaction relationships and enables the synchronization mechanism to enforce correct ordering only where necessary, allowing parallel execution elsewhere while preventing data divergence through targeted synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If fine-grained synchronization is implemented to maintain data consistency during parallel processing, then reliability improves, but system complexity increases

Engineering Contradiction:
Improvedata consistencyVSAvoidsynchronization mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the synchronization mechanism into modular components: dependency graph construction, dependency analysis, and fine-grained synchronization enforcement. This segmentation allows each component to be independently implemented and managed, reducing overall system complexity while maintaining data consistency through coordinated operation of these specialized modules.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2385472B1Fine grain synchronization for database replay
Publication Date: 2019.09.25 ORACLE INT CORP
  • EP2385472B1 patent drawingFigure 1
  • EP2385472B1 patent drawingFigure 2A
  • EP2385472B1 patent drawingFigure 2B

AI summary

A method, apparatus, and computer readable medium for preserving data dependency during replay of database commands without strictly preserving a global ordering of the database commands is provided. A capture process captures a workload of database commands executed by a production system. The captured workload includes object identifiers that identify database objects that were referenced directly or indirectly during execution of the database commands by the production system. The captured workload also includes an indication of whether the database objects were potentially read or written during execution of the commands. The workload is processed to determine that an object accessed during execution of a command was previously modified during execution of one or more other commands. A replay process on a test database system prevents the command from being replayed until after the one or more other commands have been replayed to modify the object.