System and method of redundantly storing and retrieving data with cooperating storage devices
First Claim
1. A computer system comprising:
- a client; and
a storage subsystem coupled to the client, wherein the storage subsystem comprises a plurality of data storage locations addressable as rows and columns in an array, each column of the array comprising a separate storage device of a plurality of storage devices;
wherein at least two of the separate storage devices of the plurality of storage devices are predetermined as coordinating storage devices for different rows of the array, and wherein for a corresponding row in the array, only a single storage device is configured to act as a coordinating storage device at a given time;
wherein for a given row in the array, a coordinating storage device is configured to;
receive data from the client for storage in the given row;
forward one or more portions of the received data to one or more other ones of the plurality of storage devices; and
coordinate the computation and storage of redundant data in the given row.
7 Assignments
0 Petitions
Accused Products
Abstract
A system and method for data storage in an array. A system includes a client coupled to a storage subsystem. The storage subsystem comprises data storage locations addressable as rows and columns in an array. Each column comprises a separate storage device. Each row includes redundant data. For a given row, a coordinating storage device receives data from the client, coordinates computation and storage of redundant data, and forwards data to other storage devices. In response to receiving data targeted for storage in a given storage location, a non-volatile, temporary storage device that is associated with the separate storage device that includes the given storage location buffers the received data. The coordinating storage device conveys a write completion message to the client in response to detecting that the data has been buffered in the non-volatile, temporary storage devices. At least two storage devices are coordinating storage devices in separate rows.
-
Citations
20 Claims
-
1. A computer system comprising:
-
a client; and a storage subsystem coupled to the client, wherein the storage subsystem comprises a plurality of data storage locations addressable as rows and columns in an array, each column of the array comprising a separate storage device of a plurality of storage devices; wherein at least two of the separate storage devices of the plurality of storage devices are predetermined as coordinating storage devices for different rows of the array, and wherein for a corresponding row in the array, only a single storage device is configured to act as a coordinating storage device at a given time; wherein for a given row in the array, a coordinating storage device is configured to; receive data from the client for storage in the given row; forward one or more portions of the received data to one or more other ones of the plurality of storage devices; and coordinate the computation and storage of redundant data in the given row. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of storing data in storage locations of an array comprising a plurality of storage devices, wherein the storage locations are addressable as rows and columns, each column of the array comprising a separate storage device, the method comprising:
-
designating at least two of the separate storage devices of the plurality of storage devices as coordinating storage devices for different rows of the array, wherein for a corresponding row in the array, only a single storage device is configured to act as a coordinating storage device at a given time; receiving data at a predetermined one of the plurality of storage devices designated as a coordinating storage device for a given row of the array, wherein the data is targeted for storage in the given row; and forwarding one or more portions of the data from the predetermined coordinating storage device to one or more other ones of the plurality of storage devices. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A plurality of computer readable storage media storing computer instructions that are executable by a processor to:
-
access storage locations of a storage array comprising a plurality of storage devices, wherein the storage locations are addressable as rows and columns, each column of the array comprising a separate storage device; designate at least two of the separate storage devices of the plurality of storage devices as coordinating storage devices for different rows of the array, wherein for a corresponding row in the array, only a single storage device is configured to act as a coordinating storage device at a given time; receive data at a predetermined one of the plurality of storage devices designated as a coordinating storage device for a given row of the array, wherein the data is targeted for storage in the given row; and forward one or more portions of the data from the predetermined coordinating storage device to one or more other ones of the plurality of storage devices. - View Dependent Claims (17, 18, 19, 20)
-
Specification