Claims
- 1. A method for updating values of redundant data in a storage subsystem, said subsystem including a control unit having a cache memory and a plurality of storage units for storing data of a plurality of record groups each of which includes a plurality of data records and a parity record that has a redundant data value for recovering the contents of said data records, each said data records and said parity record in a record group being stored in a different one of said storage units, said method performed by said control unit comprising:receiving a write request issued by a central processing unit, said write request being accompanied by write data to be written into one data record in said storage units; storing said write data into said cache memory; selecting, for generating updated value of a parity record in a record group to which said one data record belongs, one of a first way of parity generation which uses said write data and data of all of data records other than said one data record in said parity group to which said one data record belongs, and a second way of parity generation which said one data record belongs, and a second way of parity generation which uses old data of said one data record and old value of the parity record of said parity group to which said one data record belongs; loading any data record or parity record, which is necessary for generating updated value of the parity record of said parity group to which said one data record belongs by the selected way of parity generation, and which is not stored in said cache memory, into said cache memory; generating updated values of the parity record by using the selected way of parity generation; and writing said generated updated value of the parity record and said write data into corresponding storage units.
- 2. A method according to claim 1, wherein said selecting step includes steps of:checking storing conditions of the data records and the parity record of said record group in said cache memory; and selecting one of said first way of parity generation and said second way of parity generation based on a result of said checking.
- 3. A method according to claim 1, wherein said selecting step includes steps of:checking first number of records of said one data record and the parity record, data of which is not stored inside cache memory; checking second number of records of data records other than said one data record in said parity group, data of which is not stored in said cache memory; and selecting said first way of said second number is smaller than said first number, and selecting said second way if said first number is smaller than said second number.
- 4. A storage subsystem comprising:a plurality of storage units storing data of a plurality of record groups, each of said plurality of record groups including a plurality of data records and a parity record that has a redundant data value for recovering the contents of said data records, wherein each said data records and said parity record in a record group being stored in a different one of said storage units; a control unit including: a cache memory; receiving means for receiving a write request which is accompanied by write data be written into one data record in said storage units, and for storing said write data into said cache memory; selecting means for selecting one of ways of generating values of parity records, the ways of generating comprising a first way which uses said write data and data of all of data records in said parity group, to which said one record belongs, other than said one record and second way which uses old data of said one data record and old value of said parity record of said parity group to which said one data record belongs; loading means for loading any data of data record or parity record, which is necessary for generating updated value of the parity record of said parity group, to which said one data record belongs, by the selected way, and which is not stored in said cache memory; generating means for generating updated value of the parity record of said parity group to which said one data record belongs, by the selected way; and writing means for writing said generated value of the parity record and said write data from said cache memory into corresponding storage units.
- 5. A storage subsystem according to claim 4, wherein said selecting means includes:means for checking first number of records of said one data record and the parity record, data of which is not stored in said cache memory; means for checking second number of records of data records other than said one data record in said parity group, data of which is not stored in said cache memory; and means for selecting said first way if said second number is smaller than said first number, and selecting said second way if said first number is smaller than said second number.
- 6. A storage subsystem comprising:a plurality of storage units storing data of a plurality of record groups, each of said plurality of record groups including a plurality of data records and a parity record that has a redundant data value for recovering the contents of said data records, wherein each said data records and said parity record in a record group being stored in a different one of said storage units; a control unit having a controller and a cache memory, said controller performing functions comprising the steps of: receiving a write request issued by a central processing unit, said write request being accompanied by write data to be written into one data record in said storage units; storing said write data into said cache memory; selecting, for generating updated value of a parity record in a record group to which said one data record belongs, one of a first way of parity generation which uses said write data and data of all of data records other than said one data record in said parity group to which said one data record belongs, and a second way of parity generation which uses old data of said one data record and old value of the parity record of said parity group to which said one data record belongs; loading any data record or parity record, which is necessary for generating updated value of the parity record of said parity group to which said one data record belongs by the selected way of parity generation, and which is not stored in said cache memory, into said cache memory; generating updated values of the parity record by using the selected way of parity generation; and writing data into corresponding storage units.
Priority Claims (1)
Number |
Date |
Country |
Kind |
3-010574 |
Jan 1991 |
JP |
|
Parent Case Info
This is a continuation application of U.S. Ser. No. 09/642,815, filed Aug. 22, 2000, which is a continuation application of U.S. Ser. No. 09/259,408, filed Feb. 22, 1999, now U.S. Pat. No. 6,145,091, which is a continuation application of U.S. Ser. No. 08/877,627, filed Jun. 18, 1997, now U.S. Pat. No. 5,917,999, which is a continuation application of U.S. Ser. No. 07/827,982, filed Jan. 29, 1992, now U.S. Pat. No. 5,682,396.
US Referenced Citations (29)
Foreign Referenced Citations (12)
Number |
Date |
Country |
0369707 |
May 1990 |
EP |
0458554 |
Nov 1991 |
EP |
0462917 |
Dec 1991 |
EP |
55157053 |
Dec 1980 |
JP |
59135563 |
Aug 1984 |
JP |
60114947 |
Jun 1985 |
JP |
237418 |
Feb 1990 |
JP |
337746 |
Feb 1991 |
JP |
4-127224 |
Apr 1992 |
JP |
5-509186 |
Dec 1993 |
JP |
10-511193 |
Oct 1998 |
JP |
WO 9000280 |
Jan 1990 |
WO |
Non-Patent Literature Citations (2)
Entry |
F.D. Lawlor, “Efficient Mass Storage Parity Recovery Mechanism”, IBM Technical Disclosure Bulletin, US, IBM Corp., Jul. 1981, vol. 24, No. 2, pp. 986-987. |
Patterson, David A. et al., A Case for Redundant Arrays of Inexpensive Disks (RAID), ACM SIGMOD Conference Proceedings, Chicago, Ill. Jun. 1-3, 1988, pp. 109-116. |
Continuations (4)
|
Number |
Date |
Country |
Parent |
09/642815 |
Aug 2000 |
US |
Child |
09/956792 |
|
US |
Parent |
09/259408 |
Feb 1999 |
US |
Child |
09/642815 |
|
US |
Parent |
08/877627 |
Jun 1997 |
US |
Child |
09/259408 |
|
US |
Parent |
07/827982 |
Jan 1992 |
US |
Child |
08/877627 |
|
US |