Caching Layer Zeroing for Thin Provisioned Storage Writes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data storage systems, existing methods for handling write operations to logically addressed ranges that are not initially mapped to physical storage are inefficient, requiring multiple writes and increasing the risk of data inconsistency due to serial processing and communication overhead.
Innovation Solution
A method involving a caching layer that processes write operations by sending a hint to store zeroes in non-user data locations, merging the write data with these zeroes into a data portion of an allocation unit size, and storing this portion in cache before writing it to newly allocated physical storage, thereby reducing the number of writes and enhancing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple sequential writes are performed to allocate and fill physical storage, then physical storage can be allocated for the logical address range, but the number of write operations increases and processing time increases
Solution Approach 1:
The patent merges multiple sequential write operations into a single write operation. The caching layer receives a write operation for a logical address range, determines that physical storage needs to be allocated, and then performs a single write to the caching layer that includes both the user data and zero-filled non-user data areas. This single write operation consolidates what would otherwise require multiple sequential writes to allocate and fill physical storage blocks, thereby improving write operation efficiency while maintaining data consistency.
Solution Approach 2:
The patent applies preliminary action by having the caching layer proactively allocate physical storage and prepare zero-filled data portions before the actual write operation completes. When the caching layer receives a write operation for an unallocated logical address range, it preemptively allocates the corresponding physical storage blocks and prepares them with zero-filled non-user data areas, so that when the write operation is finally executed, the physical storage is already ready to receive the data without requiring subsequent allocation and filling operations.
2Reliability
If sequential processing is used to handle write operations, then data consistency can be maintained, but communication overhead increases and processing time increases
Solution Approach 1:
The patent combines multiple sequential processing steps into a single parallel operation. Instead of sequentially allocating physical storage, filling it with zeros, and then writing the user data, the caching layer performs all these operations in parallel within a single write operation. The caching layer constructs a data structure that includes both the user data and pre-computed zero-filled portions, allowing all processing to occur simultaneously rather than sequentially, thereby reducing processing time while maintaining data consistency through the coordinated single write operation.
3Productivity
If physical storage is allocated before write operations, then write operations can be processed efficiently, but the risk of data inconsistency increases due to multiple writes
Solution Approach 1:
The patent implements feedback mechanisms at multiple levels to ensure data consistency. The virtual provisioning layer provides feedback about the allocation state of logical address ranges to the caching layer. The caching layer receives feedback about which physical storage blocks need to be allocated and which portions need to be zero-filled. This feedback loop ensures that the caching layer has accurate information about the current state of storage allocation before constructing the write operation, allowing it to prepare the correct data portions and maintain consistency while performing efficient single-write operations.
Data Source
AI summary
Described are techniques for processing a write operation that writes first data to a target location of a logical address range of a logical device. It is determined whether the target location is mapped to physical storage. Responsive to determining that the target location is not mapped to physical storage, performing first processing to service the write operation. The first processing includes sending the write operation along with a hint to a caching layer where the hint indicates to store zeroes to locations that do not include user data. The caching layer forms a data portion denoting data stored at a logical address subrange of the logical device. The logical address subrange includes the target location. The data portion includes the first data and zeroes stored at remaining locations of the logical address subrange not including user data. The data portion is stored in cache by the caching layer.


