Zero-Fill Copy Acceleration for Empty Data Extents
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


