Secondary Storage Controller Parity Calculation Using Difference Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage technologies face inefficiencies in mirroring updates from a primary storage controller to a secondary storage controller, particularly in environments with multiple processor cores and RAID arrays, where calculating parity data is resource-intensive and requires reading previous versions of data.

Innovation Solution

The primary storage controller calculates new primary parity data and difference data from modified data, which is then transmitted to the secondary storage controller to calculate new secondary parity data, optimizing operations by avoiding the need to read previous versions of data and ensuring parity data compatibility between controllers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the secondary storage controller reads previous versions of data to calculate parity data, then the parity data can be calculated accurately, but the computational resources and time required increase significantly

Engineering Contradiction:
Improveparity data accuracyVSAvoidcomputational resources
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The primary storage controller pre-calculates difference data representing changes between modified and previous versions of data, and transmits this difference data to the secondary storage controller before the secondary controller needs to perform parity calculations. This preliminary preparation eliminates the need for the secondary controller to read and process entire previous data versions, thereby reducing computational resources while maintaining parity accuracy.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the secondary storage controller reads previous versions of data to calculate parity data, then the parity data can be calculated accurately, but the time required for the operation increases

Engineering Contradiction:
Improveparity data accuracyVSAvoidparity calculation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The primary storage controller pre-calculates difference data representing changes between modified and previous versions of data, and transmits this difference data to the secondary storage controller before the secondary controller needs to perform parity calculations. This preliminary preparation eliminates the need for the secondary controller to read and process entire previous data versions, thereby reducing computational resources while maintaining parity accuracy.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the primary storage controller transmits only modified data to the secondary storage controller, then the data transfer is simplified, but the secondary controller must perform additional computations to calculate parity

Engineering Contradiction:
Improvedata transfer simplicityVSAvoidcomputational complexity at secondary controller
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces difference data as an intermediary element that bridges the primary and secondary storage controllers. The primary controller computes this difference data (which represents changes from previous versions) and transmits it along with modified data to the secondary controller. This intermediary difference data enables the secondary controller to perform simpler parity calculations by comparing against known previous versions, thereby reducing computational complexity while maintaining operational simplicity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If the secondary storage controller performs full parity calculations independently, then the parity data is accurate, but the mirroring efficiency between controllers decreases

Engineering Contradiction:
Improveparity data accuracyVSAvoidmirroring efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The primary storage controller pre-calculates difference data representing changes between modified and previous versions of data, and transmits this difference data to the secondary storage controller before the secondary controller needs to perform parity calculations. This preliminary preparation eliminates the need for the secondary controller to read and process entire previous data versions, thereby reducing computational resources while maintaining parity accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces difference data as an intermediary element that bridges the primary and secondary storage controllers. The primary controller computes this difference data (which represents changes from previous versions) and transmits it along with modified data to the secondary controller. This intermediary difference data enables the secondary controller to perform simpler parity calculations by comparing against known previous versions, thereby reducing computational complexity while maintaining operational simplicity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10831597B2Receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data
Publication Date: 2020.11.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10831597B2 patent drawing
  • US10831597B2 patent drawing
  • US10831597B2 patent drawing

AI summary

Provided are a computer program product, system, and method for receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data. The secondary storage controller receives from the primary storage controller difference data calculated from modified data and a pre-modified version of the modified data for a primary group of tracks at the primary storage and one of the modified data and new primary parity data calculated at the primary storage controller from the modified data and the difference data. The secondary storage controller uses the difference data and one of the modified data and the new primary parity data to write new secondary parity data and the modified data to a secondary group of tracks at the secondary storage.