Dual Cache Checkpoint Coordination for Active-Active Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In active-active fault tolerant computing systems, checkpointing processes can lead to data corruption and performance degradation due to asynchronous writes between primary and secondary nodes, causing divergence and potential loss of cached writes on the secondary node.

Innovation Solution

Implementing a method that uses two caches, an active checkpoint cache and a flush cache, with dirty bit tracking to synchronize and commit writes to permanent storage, allowing checkpoints to be taken without waiting for full cache flush, ensuring data integrity and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If checkpoint is taken without waiting for cache flush, then checkpoint performance is improved and productivity increases, but data integrity deteriorates and data corruption occurs on secondary node

Engineering Contradiction:
Improvecheckpoint performanceVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The cache is divided into two separate caches: an active checkpoint cache for holding data during checkpoint operations, and a flush cache for data that needs to be flushed to disk. This segmentation allows the system to distinguish between data that must be flushed and data that can be checkpointed without waiting for flush completion, resolving the contradiction between checkpoint performance and data integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The flush cache acts as an intermediary between the active checkpoint cache and permanent storage. It receives data from the active checkpoint cache and manages the flushing process independently, allowing checkpoints to proceed without blocking on flush completion while ensuring that flushed data is properly committed to storage.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If cache flush is blocked until complete, then data integrity is maintained, but storage performance degrades and productivity decreases

Engineering Contradiction:
Improvedata integrityVSAvoidstorage performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the cache into active checkpoint cache and flush cache, the system can independently manage flushing operations in the flush cache without blocking checkpoint operations in the active checkpoint cache. This allows data integrity to be maintained through proper flushing while avoiding performance degradation from blocked operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The flush cache enables continuous flushing of data to storage without interrupting checkpoint operations. The useful action of flushing data can continue in the background within the flush cache while checkpoint operations proceed simultaneously in the active checkpoint cache, maintaining both data integrity and storage performance.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If writes are immediately committed to permanent storage, then storage performance is improved, but node synchronization deteriorates and divergence increases

Engineering Contradiction:
Improvestorage performanceVSAvoidnode synchronization
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The dual-cache structure segments write operations into two paths: writes go to the active checkpoint cache first, then to the flush cache, and finally to permanent storage. This segmentation allows the system to control when data is committed to storage, preventing immediate commitment that would cause divergence while maintaining performance through efficient flushing.

Inventive Principle:
Principle #1Segmentation

4Reliability

If checkpoint waits for cache flush completion, then data corruption is prevented, but checkpoint duration increases and productivity decreases

Engineering Contradiction:
Improvedata corruption preventionVSAvoidcheckpoint duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The separation of active checkpoint cache and flush cache allows checkpoint operations to proceed independently of flush operations. The active checkpoint cache can be checkpointed without waiting for the flush cache to complete flushing, preventing data corruption through proper separation while reducing checkpoint duration by eliminating the wait time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The flush cache performs preliminary flushing of data before checkpoints are taken. By pre-flushing data in the flush cache, the system ensures data integrity is maintained without requiring the checkpoint operation itself to wait for flush completion, thereby reducing checkpoint duration while preventing data corruption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11263136B2Fault tolerant systems and methods for cache flush coordination
Publication Date: 2022.03.01 STRATUS TECH IRELAND LTD
  • US11263136B2 patent drawing
  • US11263136B2 patent drawing
  • US11263136B2 patent drawing

AI summary

In part, the disclosure relates to a method of performing a checkpoint process in an active-active computer system including a first node and a second node, wherein each node includes an active checkpoint cache, flush cache, and data storage. In various embodiments, flush operations are coordinated between nodes. The method includes receiving a request for a checkpoint operation at the first node; pausing activity at the first node; notifying the second node of the impending checkpoint operation; performing the checkpoint operation, wherein data associated with the checkpoint operation includes the active checkpoint cache and the flush cache; merging the active checkpoint cache into the flush cache; and resuming activity at the first node. The method may also include each node informing the other node of the completion of cache flush operations.