IP Library Granted Patent US 7,822,921
Granted Patent B2
US 7,822,921 · App. 11/590,446 · Granted Oct 26, 2010

System and method for optimizing write operations in storage systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,822,921
App. No.
11/590,446
Granted
Oct 26, 2010
Kind
B2
Abstract

Embodiments of the present invention provide a method, system, and computer program product for optimizing I/O operations performed by a storage server operating on behalf of multiple clients to access data on a plurality of storage devices (disks). Embodiments of the present invention eliminate the need for selected read operations to write new data to physical data blocks by zeroing the physical data blocks to which new data will be written. Additionally, the need for reading old parity to compute new parity is eliminated. Instead, new parity is computed from the data to be written without the need of old parity or the storage server sends a command to a disk that stores parity. A module implemented at the disk that stores parity executes the command without reading, by the storage server, old parity. Eliminating the need for reading old data and for reading old parity eliminates some rotation latency and improves overall system's performance.

Claims (35)

1. A parity protection system, comprising:

a zeroing module configured to initiate a zeroing process on a plurality of storage devices in the parity protection system by issuing a zeroing command, wherein the parity protection system comprises a processor and a memory;

a storage module coupled to the zeroing module configured to execute the zeroing command to cause free physical data blocks identified by the command to assume a zero value; and

in response to the free physical data blocks assuming zero values, a controller module to update a parity for one or more stripes in the parity protection system that contain data blocks zeroed by the zeroing command;

wherein the storage module in response to an access request from a client, comprising a write operation and associated data, is configured to access the free physical data blocks and to write the data thereto and compute a new parity for one or more stripes associated with the write operation without reading the zeroed physical data blocks to which the data are written.

2. The parity protection system of claim 1 , wherein the new parity is computed without reading, by the storage module, parity associated with the physical data blocks prior to the data being written thereto.

3. The parity protection system of claim 1 , wherein the zeroing module and the storage module each comprising program code executed on the processor of the parity protection system.

4. The parity protection system of claim 2 , wherein the command executing module comprises program code executed on one or more controllers at the storage device.

5. The parity protection system of claim 2 , wherein the command executing module is further configured to:

receive, from the parity protection system, new data to be written to a physical data block,

read the updated parity associated with the physical data blocks, and

perform an exclusive OR (XOR) operation on the updated parity and the new data to be written to the physical data block as the new parity.

6. The parity protection system of claim 1 , further comprising a memory configured to store:

a first data structure for indicating which data blocks are free; and

a second data structure for indicating which data blocks are caused to assume a zero value.

7. The parity protection system of claim 1 , wherein the free physical data blocks do not store data.

8. The parity protection system of claim 1 , wherein the parity is row parity.

9. The parity protection system of claim 1 , wherein the parity is diagonal parity.

10. A method for optimizing I/O operations performed by a parity protection storage system in response to access requests by a plurality of clients, comprising:

issuing, by a zeroing module, a zeroing command to cause free physical data blocks to assume a zero value at a plurality of storage devices of the parity protection storage system comprising a processor and a memory;

executing, by a storage module, the zeroing command by causing the free physical data blocks identified by the command to assume a zero value;

in response to the free physical data blocks assuming zero values, updating a parity for one or more stripes of the parity protection storage system that contain zeroed data blocks;

receiving an access request from a client, the request comprising a write operation and associated data; and

writing the data to physical data blocks at the storage devices and computing a new parity for one or more stripes associated with the write request without reading the zeroed physical data blocks to which the data are written.

11. The method of claim 10 , wherein the new parity is computed without reading, by the parity protection storage system, parity associated with the physical data blocks prior to the data being written thereto.

12. The method of claim 10 , wherein computing the new parity further comprises performing an exclusive OR (XOR) operation with the updated parity and the associated data.

13. A computer readable medium containing executable program instructions executed by a processor, comprising:

program instructions that issue a zeroing command to cause free physical data blocks to assume a zero value at a plurality of storage devices of a parity protection storage system comprising a processor and a memory;

program instructions that execute the zeroing command by causing the free physical data blocks identified by the command to assume a zero value;

program instructions that update a parity for one or more stripes, of the parity protection storage system, in response to the free physical data blacks assuming zero values;

program instructions that receive an access request from a client, the request comprising a write operation and associated data; and

program instructions that write the associated data to physical data blocks at the storage devices and compute a new parity for one or more stripes associated with the write operation without reading the zeroed physical data blocks to which the data are written.

14. The computer readable medium of claim 13 , wherein the new parity is computed without reading, by the parity protection storage system, parity associated with the physical data blocks prior to the data being written thereto.

15. The computer readable medium of claim 13 , further comprising:

program instructions that compute the new parity by performing an exclusive OR (XOR) operation with the updated parity and the associated data.

Assignments (3)
CHANGE OF NAME Recorded Jul 14, 2024
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 067983/0117 →
CHANGE OF NAME Recorded Oct 17, 2011
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 027072/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2007
From: TAYLOR, JAMES A.
To: NETWORK APPLIANCE, INC.
Reel/Frame 019250/0870 →