Dual Cache Checkpoint Coordination for Active-Active Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If cache flush is blocked until complete, then data integrity is maintained, but storage performance degrades and productivity decreases
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.
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.
3Productivity
If writes are immediately committed to permanent storage, then storage performance is improved, but node synchronization deteriorates and divergence increases
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.
4Reliability
If checkpoint waits for cache flush completion, then data corruption is prevented, but checkpoint duration increases and productivity decreases
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.
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.
Data Source
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.


