Primary Read Cache as Write Buffer in Synchronous Replication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In synchronous data replication environments, a full write cache on the primary storage system leads to significant performance impacts due to the need for synchronous destaging to slower back-end storage drives, causing spikes in I/O response times.

Innovation Solution

The method involves temporarily using the primary read cache to store incoming write data when the write cache is full, mirroring this data to the secondary write cache, thereby avoiding performance degradation and ensuring data redundancy in case of a failure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If write cache is used in synchronous data replication to improve write performance, then write speed is improved, but I/O response time spikes when write cache becomes full

Engineering Contradiction:
Improvewrite speedVSAvoidI/O response time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent introduces read cache as an intermediary storage mechanism. When write cache becomes full, incoming write data is temporarily stored in read cache instead of blocking the write operation. This intermediary read cache allows the system to continue accepting writes without immediate performance degradation, resolving the contradiction between maintaining high write speed and avoiding I/O response time spikes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the state parameter of the read cache from its normal read-only function to a temporary write storage function. By repurposing read cache capacity to hold write data when write cache is full, the system dynamically adjusts storage parameters to maintain write performance while preventing I/O response time spikes.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If synchronous mirroring is implemented to ensure data reliability, then data consistency is improved, but performance degradation occurs during write operations

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary action by pre-allocating and preparing read cache space before write cache becomes full. The system proactively uses read cache as a buffer for incoming write data, ensuring that synchronous mirroring can continue without blocking write operations. This preliminary preparation maintains data consistency through synchronous mirroring while preventing performance degradation.

Inventive Principle:
Principle #10Preliminary action

3Speed

If write cache capacity is increased to reduce full-cache frequency, then write performance is improved, but system complexity and cost increase

Engineering Contradiction:
Improvewrite performanceVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies multi-functionality by enabling read cache to serve dual purposes: normal read operations and temporary write data storage. When write cache is full, read cache temporarily handles write data buffering, providing an additional functional capability without adding physical hardware. This universal use of existing components improves write performance while avoiding increased system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10664189B2Performance in synchronous data replication environments
Publication Date: 2020.05.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10664189B2 patent drawing
  • US10664189B2 patent drawing
  • US10664189B2 patent drawing

AI summary

A method for improving I/O performance in synchronous data replication environments is disclosed. In one embodiment, such a method includes receiving write data into a primary write cache of a primary storage system. The method synchronously mirrors the write data from the primary write cache to a secondary write cache of a secondary storage system. The method is further configured to detect when the primary write cache is full. When the primary write cache is full, the method temporarily uses primary read cache of the primary storage system to store incoming write data. This incoming write data is mirrored from the primary read cache to the secondary write cache of the secondary storage system. A corresponding system and computer program product are also disclosed herein.