Program Replication for Continuous Availability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program and data storage replication systems fail to provide accurate replication that accounts for both program state and data storage state, leading to potential downtime and revenue loss in enterprises.

Innovation Solution

A method and system for replicating programs and data storage by sending program replication data from a first program to a second program, which is a replica, and replicating data between storage systems, ensuring mirroring of processor and memory state, and enabling seamless user interaction in case of failures, using techniques like Record and Replay for state synchronization and Logical Volume Manager (LVM) mirroring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If program and data storage replication is implemented, then system availability is improved, but system complexity increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a replica program on a second device that mirrors the application program, processor state, and memory state of the first program. This copying approach ensures continuous availability by having a standby system that can take over immediately if the primary system fails, directly resolving the contradiction by providing reliability through replication while managing complexity through systematic state mirroring

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The replication system is divided into distinct components: program replication data transmission, data storage replication, processor state mirroring, and memory state synchronization. This segmentation allows each component to be independently managed and optimized, reducing overall system complexity while maintaining comprehensive replication capabilities for high availability

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If accurate replication of program state and data storage state is achieved, then data consistency is improved, but replication accuracy requirements increase system complexity

Engineering Contradiction:
Improvedata consistencyVSAvoidreplication system complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The system continuously monitors and compares the state of the first program and second program, including processor state and memory state, ensuring they remain synchronized. This feedback mechanism maintains data consistency by detecting and correcting any deviations, achieving high replication accuracy while managing complexity through automated state comparison and synchronization protocols

Inventive Principle:
Principle #23Feedback

3Reliability

If program replication data is sent continuously to maintain state mirroring, then availability is improved, but network bandwidth consumption increases

Engineering Contradiction:
Improveprogram availabilityVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system transmits program replication data periodically or event-driven rather than continuously, sending updates when state changes occur. This approach maintains program availability by ensuring the replica can take over when needed, while reducing network bandwidth consumption by transmitting only necessary updates rather than continuous data streams

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8229886B2Continuously available program replicas
Publication Date: 2012.07.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8229886B2 patent drawing
  • US8229886B2 patent drawing
  • US8229886B2 patent drawing

AI summary

A method for replicating a program and data storage according to one embodiment comprises sending program replication data from a first program to a second program, the second program having an application program that is a replica of an application program of the first program; sending data storage requests from the first program to a first storage system; and replicating data stored in the first storage system in a second storage system. Additional methods, systems, and computer program products are disclosed.