Zero-Fill Copy Acceleration for Empty Data Extents

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data storage systems that implement XCOPY operations suffer inefficiencies when the source location is completely filled with zeroes, leading to wasteful bandwidth usage due to the transfer of empty buffers.

Innovation Solution

A method is introduced where a data storage system detects when the source of an XCOPY or offloaded copy command is entirely empty and uses a zero-fill operation to fill the destination with zeroes, eliminating the need to transfer empty buffers by issuing a buffered read command to confirm the source's emptiness and then executing a zero-fill command.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If conventional XCOPY operations are used to copy data from source to target, then the copy operation can be performed, but bandwidth is wasted when the source is filled with zeroes due to transfer of empty buffers

Engineering Contradiction:
Improvebandwidth usageVSAvoidcopy operation efficiency
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The system performs a preliminary buffered read operation to detect whether the source extent is empty (filled with zeroes) before executing the copy operation. This preliminary detection enables the system to choose the appropriate copy method, avoiding the waste of transferring empty buffers and thus resolving the bandwidth efficiency problem.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the copy operation parameter based on the detected state of the source extent. When the source is detected as empty, the system switches from standard buffer transfer to zero-fill operation, which directly writes zeroes to the target without reading from source, thereby eliminating unnecessary bandwidth consumption.

Inventive Principle:
Principle #35Parameter changes

2Loss of energy

If a buffered read command is issued to detect source emptiness, then bandwidth waste can be avoided, but additional processing steps are required

Engineering Contradiction:
Improvebandwidth usageVSAvoidcopy operation process
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The system extracts the detection of source emptiness as a separate preliminary step from the copy operation itself. By isolating this detection function, the system can make an informed decision about whether to proceed with standard copy or zero-fill, adding minimal complexity while achieving significant bandwidth savings.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The buffered read command serves as a preliminary action that provides critical information about the source state. This preliminary step, though adding some processing, enables the system to optimize the subsequent copy operation by avoiding unnecessary data transfer when the source is empty.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10318178B1Accelerating copy of zero-filled data extents
Publication Date: 2019.06.11 EMC IP HLDG CO LLC
  • US10318178B1 patent drawing
  • US10318178B1 patent drawing
  • US10318178B1 patent drawing

AI summary

A method of accelerating copy operations is performed by a data storage appliance. The method includes (a) in response to receiving a copy command to copy from a source extent to a target extent, issuing a buffered read command to read from the source extent down a storage stack of the data storage appliance by a driver running on the data storage appliance, the source extent being part of a first logical disk backed by non-volatile storage of the data storage appliance and the target extent being part of a second logical disk backed by non-volatile storage of the data storage appliance, (b) in response to issuing, receiving at the driver an indication from the storage stack that the source extent is empty, and (c) in response to receiving, issuing a zero-fill command to fill the target extent with zeroes down the storage stack by the driver.