Event Log Transfer for Program Replication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing log transfer systems in fault-tolerant systems are either fast but unsafe, leading to data integrity issues, or safe but slow, causing latency and serialization points that impact application performance.

Innovation Solution

A method that differentiates between non-abortable and abortable events, logging and transferring non-abortable events immediately while deferring physical commits until acknowledgment, allowing for parallel log transfer and reducing latency by batching non-deterministic events.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If events are transferred immediately to the standby machine, then data integrity is ensured, but application latency increases due to serialization points

Engineering Contradiction:
Improvedata integrityVSAvoidapplication latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments events into two categories: non-abortable events (requiring immediate transfer for data integrity) and abortable events (allowing deferred transfer). This segmentation allows the system to transfer only critical events immediately, reducing the number of serialization points while ensuring data integrity for essential operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary logging of events in a buffer before transfer. Events are logged in advance and transferred to the standby machine in batches rather than immediately upon occurrence. This preliminary action reduces the frequency of transfer operations and minimizes serialization points while maintaining data integrity through buffered storage.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all events are transferred to the standby machine, then complete replication is achieved, but transfer overhead and serialization points increase

Engineering Contradiction:
Improvereplication completenessVSAvoidtransfer efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and identifies a specific subset of events (non-abortable events) that require immediate transfer for replication completeness. By taking out only these critical events from the full event stream, the system achieves complete replication of essential state while reducing the volume of transferred data and minimizing transfer overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by transferring only the necessary subset of events (non-abortable events) rather than all events. This selective approach achieves sufficient replication completeness for fault tolerance while reducing transfer frequency and overhead, improving overall transfer efficiency.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If standard TCP-IP protocol is used for log transfer, then data integrity is ensured, but transfer speed decreases due to acknowledgment requirements

Engineering Contradiction:
Improvedata integrityVSAvoidtransfer speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent implements preliminary logging of events in a local buffer before transfer to the standby machine. This preliminary action allows events to be recorded immediately with high speed, then transferred in batches using reliable TCP-IP protocol. The acknowledgment requirement of TCP-IP is satisfied, but the preliminary buffering eliminates the need for immediate acknowledgment-based transfer, improving overall transfer speed.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If log transfer is performed synchronously, then data safety is ensured, but application performance decreases due to serialization points

Engineering Contradiction:
Improvedata safetyVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the transfer process into synchronous transfer of non-abortable events (for data safety) and asynchronous or deferred transfer of abortable events (for performance). This segmentation allows critical safety operations to be performed synchronously while non-critical operations can proceed asynchronously, improving overall application performance by reducing serialization points.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial synchronous action by performing synchronous transfer only for non-abortable events that require data safety, while allowing abortable events to be transferred asynchronously or deferred. This partial application of synchronous transfer maintains data safety for critical operations while improving application performance by reducing the number of serialization points.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8984513B2Transfer of event logs for replication of executing programs
Publication Date: 2015.03.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8984513B2 patent drawing
  • US8984513B2 patent drawing
  • US8984513B2 patent drawing

AI summary

A mechanism for replicating programs executing on a computer system having a first storage means is provided. The mechanism identifies the events corresponding to requests from one executing program, which may be different from the executing program to be replicated, which are non-deterministic and identifies the ‘Non Abortable Events’ (NAE's), which change irremediably the state of the external world that need to be reproduced in the replay of the programs. These events are immediately transferred for replay and the executing program is blocked until the transfer is acknowledged. For the other non-deterministic events, they are logged and sent to the executing program, the executing programs remaining blocked only if the log is full and/or if a timer between two NAEs expires, in this case a log transfer to the standby machine is performed to prepare replication before unblocking of the executing program.