Caching Layer Zeroing for Thin Provisioned Storage Writes

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If sequential processing is used to handle write operations, then data consistency can be maintained, but communication overhead increases and processing time increases

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

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

Engineering Contradiction:
Improvewrite operation efficiencyVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9778850B1Techniques for zeroing non-user data areas on allocation
Publication Date: 2017.10.03 EMC IP HLDG CO LLC
  • US9778850B1 patent drawing
  • US9778850B1 patent drawing
  • US9778850B1 patent drawing

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.