Cache Module Synchronizing Data Across Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data caching schemes in storage systems fail to synchronize non-user data, leading to inconsistent processor states and data loss during power failures, as they only cache user data and do not provide cache services to lower modules or ensure data persistence.

Innovation Solution

Implementing an independent cache module that provides cache services to client modules on storage processors, allowing for caching of both user and non-user data, and incorporating a persistent storage medium for power failure protection, ensuring data synchronization and integrity across processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional cache module is used for caching only user data, then the cache service is simple and easy to implement, but non-user data cannot be cached and processor states become inconsistent

Engineering Contradiction:
Improvecache service coverageVSAvoidcache module complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The cache module is designed to serve multiple client modules including upper modules and lower modules, caching both user data and non-user data such as mapping information and metadata. This universal cache service approach resolves the contradiction by making the cache module adaptable to different data types and client modules while maintaining a unified implementation framework.

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

Solution Approach 2:

The cache module is divided into multiple cache regions, each serving different client modules. Upper modules access certain cache regions while lower modules access other cache regions, allowing the cache module to handle diverse data types without increasing overall complexity. The segmentation enables specialized caching for different data types while maintaining a single unified cache module architecture.

Inventive Principle:
Principle #1Segmentation

2Reliability

If data is cached in volatile memory without persistent storage, then caching speed is fast, but data is lost when power supply fails

Engineering Contradiction:
Improvedata persistenceVSAvoidcaching speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

A persistent storage medium is introduced as an intermediary between the volatile cache memory and the external storage system. When power failure occurs, the persistent storage medium preserves the cached data, preventing data loss. This intermediary component ensures data persistence while allowing the main cache to operate at high speed during normal conditions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by writing data to both the volatile cache and the persistent storage medium. Before power failure can occur, critical data is pre-saved to the persistent storage medium, ensuring data integrity. This preliminary action approach maintains fast caching operations while preparing for potential power failures.

Inventive Principle:
Principle #10Preliminary action

3Stability of the object's composition

If synchronous replication is implemented across all processors, then data consistency is maintained, but synchronization time and system complexity increase

Engineering Contradiction:
Improveprocessor state consistencyVSAvoidsynchronization time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

Different cache regions are assigned to different client modules with specific access permissions. Upper modules can access certain cache regions while lower modules access other regions, creating localized access patterns. This local quality approach maintains data consistency within each module's access scope without requiring global synchronization across all processors, reducing synchronization time.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

Instead of implementing full synchronous replication across all processors for all data, the system implements partial synchronization only for critical data and cache regions that require consistency. This partial action approach maintains necessary processor state consistency while minimizing synchronization overhead and time loss.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11093141B2Method and apparatus for caching data
Publication Date: 2021.08.17 EMC IP HLDG CO LLC
  • US11093141B2 patent drawing
  • US11093141B2 patent drawing
  • US11093141B2 patent drawing

AI summary

Embodiments of the present disclosure relate to methods and apparatuses for caching data. A method comprises writing data into a first cache module on a first processor in response to receiving a first request for caching the data from a client module running on the first processor. The method further comprises transmitting, to the client module, a first indication that the data has been written into the first cache module. The method further comprises, in response to receiving from the client module a second request for synchronizing the data to a second processor, transmitting to the second processor a first command for causing the data to be written into a second cache module on the second processor. In addition, the method further comprises transmitting to the client module a second indication that the data has been synchronized.