Cache Track Restore via Atomic Merge
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
During a failover in a storage system with redundant processors, the restoration of tracks from non-volatile storage to cache can result in data loss if the failover occurs before the merging of data is complete, causing the cache track to be pinned as invalid and leading to interruptions.
Innovation Solution
The solution involves transferring the current version of a track from non-volatile storage to a second location in the cache, merging it with the previous version in an atomic operation that cannot be interrupted by a failover, and demoting the current version if the failover occurs, allowing the previous version to remain intact and usable.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the current version of a track is transferred from non-volatile storage to a new location in cache and merged with the previous version, then data integrity is improved, but the complexity of the restore operation increases
Solution Approach 1:
The restore operation is segmented into distinct phases: allocating a new location in cache, transferring data from NVS to the new location, and merging with the previous version. This segmentation allows each phase to be managed independently, improving data integrity while making the overall complex operation more controllable and manageable.
Solution Approach 2:
A new location in cache is introduced as an intermediary storage area between the NVS and the original track location. This intermediary allows the current version to be prepared and validated before merging with the previous version, ensuring data integrity without requiring direct overwriting that would compromise reliability.
2Adaptability or versatility
If a failover occurs during the restore operation, then system availability is improved through failover capability, but data loss occurs when the cache track is pinned as invalid
Solution Approach 1:
The system performs preliminary actions by allocating a new location in cache and transferring data there before the failover can occur. This preliminary preparation ensures that if a failover happens during the restore operation, the data in the new location can be preserved or recovered, preventing data loss while maintaining failover capability.
Solution Approach 2:
The new location in cache acts as a cushion or safety buffer against data loss during failover. By having this intermediate storage area, the system can withstand a failover event without losing the restored data, as the cushioning location protects the data from being invalidated when the original track location becomes compromised.
3Stability of the object's composition
If the current version is merged with the previous version in an atomic operation, then consistency is improved, but the time required for the restore operation increases
Solution Approach 1:
The atomic merge operation is segmented into controlled phases: data transfer to new location, validation of the transferred data, and then the atomic merge with the previous version. This segmentation ensures consistency through the atomic operation while allowing validation checks to confirm data integrity before the final merge, optimizing the time required.
4Difficulty of detecting and measuring
If the cache CDCB is set to indicate restore-in-progress, then tracking of restore operations is improved, but the risk of data loss increases when failover occurs
Solution Approach 1:
The new location in cache serves as an intermediary that decouples the restore-in-progress tracking from the original track location. When restore-in-progress is indicated, the data resides in the new location rather than being directly merged, which reduces the risk of data loss during failover while maintaining proper tracking of the restore operation's status.
Data Source
AI summary
Provided are a computer program product, system, and method for restoring tracks in cache. A restore operation is initiated to restore a track in the cache from a non-volatile storage to which tracks in the cache are backed-up. The non-volatile storage includes a current version of the track and wherein a previous version of the track subject to the restore operation is stored in a first location in the cache. A second location in the cache is allocated for the current version of the track to restore from the non-volatile storage. The data for the current version of the track is transferred from the non-volatile storage to the second location in the cache. Data for the track is merged from the second location into the first location in the cache to complete restoring to the current version of the track in the first location from the non-volatile storage.


