Snapshot Mapping Objects for Cache-Based Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional snapshot copy facilities in cache-based storage systems face challenges in efficiently creating snapshot copies when a portion of the file system is cached in memory, leading to significant time delays due to the need to flush large amounts of data to persistent storage, which can hinder application access and performance.
Innovation Solution
The implementation of a delegated reference count mechanism allows sharing of cached data between the original file and its replica, enabling the creation of snapshot copies without flushing data to storage, and using a redirect link for uncached data access, with information stored in a data transaction log for later flushing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is flushed to persistent storage before creating snapshot copies, then data integrity is ensured, but significant time delays occur and application performance deteriorates
Solution Approach 1:
The patent segments the data access paths by creating separate mapping structures: original mapping objects for current data and snapshot mapping objects for historical data. This allows the snapshot creation process to proceed independently without blocking the flushing operation, resolving the contradiction between ensuring data integrity and reducing snapshot creation time.
Solution Approach 2:
The patent performs preliminary actions by creating snapshot mapping objects that reference existing cached data before the flush operation completes. The snapshot copy facility is configured in advance to access data through these mapping objects, allowing snapshot creation to begin before data is permanently written to storage, thus reducing snapshot creation time while maintaining data integrity.
2Stability of the object's composition
If large amounts of cached data are flushed to persistent storage, then data consistency is maintained, but memory utilization decreases and write latency increases
Solution Approach 1:
The patent creates snapshot mapping objects that are copies of the original mapping structure but point to the same cached data. These mapping object copies allow multiple access paths to the same data without duplicating the actual data in cache, maintaining memory utilization while ensuring data consistency through the mapping structure replication.
Solution Approach 2:
The patent makes the cached data serve multiple functions simultaneously: it acts as the current working data for active operations and as the source for snapshot copies. The same cached pages are shared between original and snapshot access paths through the mapping object structure, eliminating the need to flush data to storage for snapshot creation and maintaining high memory utilization.
3Productivity
If snapshot copies are created from cached data without flushing, then write latency is reduced and application response time improves, but data access complexity increases
Solution Approach 1:
The patent introduces mapping objects as intermediary structures that manage data access for both original and snapshot operations. These mapping objects serve as mediators between the cache and the access requests, handling the complexity of data location and versioning internally while presenting a simple interface to applications, thus improving response time without exposing access complexity to users.
Solution Approach 2:
The patent extracts the access complexity from the snapshot creation process by separating the mapping object management from the data flushing operation. The snapshot copy facility is configured with its own mapping objects that independently manage snapshot data access, removing the complexity of coordinating flush operations from the snapshot creation path and enabling fast snapshot creation.
Data Source
AI summary
A method is used in managing snapshot in cache-based storage systems. A request to create a snapshot of a data object is received. A portion of the data object is cached in a global cache. The data object is associated with a mapping object. The mapping object manages access to the portion of the data object. A snapshot of the data object is created. A snapshot mapping object is associated with the snapshot of the data object. The snapshot mapping object includes a link to the mapping object. The snapshot mapping object is a version of the mapping object and shares the portion of the data object cached in the global cache.


