A storage controller, when writing n sets of data into a first storage device, adds dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculates (n−1) parities based on the first set of data and the other sets of data, and when reading the n sets of data from the first storage device, concurrently performs a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A storage controller comprising: a processor configured to execute a parity calculation process that includes: adding, when writing n sets of data (n is an integer of three or more) into a first storage device, dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculating (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device; and execute a control process that includes: concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, wherein the processor is configured to perform, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and the processor is configured to temporarily stop the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
A storage controller manages writing and reading 'n' (3 or more) data sets. When writing, it pads smaller data sets with dummy data to match the size of the largest data set. It then calculates 'n-1' parity sets using the padded data and stores these parity sets in a separate storage device. When reading, it concurrently reads the smallest data set and restores the other data sets using the parity sets and dummy data. After partially restoring the larger data sets, it restores the remaining portions using the already read smallest data set, doing this in parallel with the reading process. The restore process pauses when the difference between the amount of smallest data set remaining to be read and the amount of the largest data set remaining to be restored falls below a threshold.
2. The storage controller according to claim 1 , wherein the processor is configured to calculate, after temporarily stopping the processing of restoring the two or more sets of data, a threshold value by using the size of data yet to be restored in the set of data having the largest size, restoration processing speed of the two or more sets of data, the size of data of the second set of data yet to be read from the first storage device, and read processing speed of the second set of data, and the processor is configured to resume the processing of restoring of the two or more sets of data when the differential value becomes equal to or larger than the threshold value.
This storage controller, as described above, calculates a threshold value after pausing the restore process. The threshold calculation uses: the amount of data remaining to be restored in the largest data set, the restoration speed of the larger data sets, the amount of the smallest data set remaining to be read, and the read speed of the smallest data set. The controller resumes restoring the larger data sets when the difference between the amount of smallest data set remaining to be read and the amount of the largest data set remaining to be restored becomes greater than or equal to this calculated threshold.
3. The storage controller according to claim 1 , wherein the processor is configured to write m sets of data including the n sets of data (m is an integer more than n) into the first storage device and read the written m sets of data from the first storage device, and the second set of data is data having a smallest size among the m sets of data.
In this storage controller, as described above, 'm' data sets (where 'm' is greater than 'n') are written and read. The smallest data set used for concurrent reading and restoration is selected as the smallest data set out of these 'm' data sets. The storage controller manages writing and reading 'n' sets of data (n is an integer of three or more) into a first storage device, adds dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculates (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, performs, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and temporarily stops the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
4. The storage controller according to claim 3 , wherein the first set of data is data having a largest size among the m sets of data.
In this storage controller, as described above where 'm' data sets (where 'm' is greater than 'n') are written and read and the smallest data set is selected from these 'm' data sets, the largest data set used for padding is selected as the largest data set out of these 'm' data sets. The storage controller manages writing and reading 'n' sets of data (n is an integer of three or more) into a first storage device, adds dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculates (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, performs, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and temporarily stops the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
5. The storage controller according to claim 1 , wherein the processor is configured to perform the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data in descending order of data size of the data sets.
This storage controller, as described above, restores the larger data sets (using parity sets and dummy data) in descending order of their data size. The storage controller manages writing and reading 'n' sets of data (n is an integer of three or more) into a first storage device, adds dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculates (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, performs, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and temporarily stops the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
6. A storage system comprising: a first storage device; a second storage device; and a processor configured to execute a party calculation process that includes: adding, when writing n sets of data (n is an integer of three or more) into a first storage device, dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculating (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, execute a control process that includes: concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, wherein the processor is configured to perform, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and the processor is configured to temporarily stop the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
A storage system includes a first storage device, a second storage device, and a processor. The processor manages writing and reading 'n' (3 or more) data sets in the first storage device. When writing, it pads smaller data sets with dummy data to match the size of the largest data set. It then calculates 'n-1' parity sets using the padded data and stores these parity sets in the second storage device. When reading, it concurrently reads the smallest data set and restores the other data sets using the parity sets and dummy data. After partially restoring the larger data sets, it restores the remaining portions using the already read smallest data set, doing this in parallel with the reading process. The restore process pauses when the difference between the amount of smallest data set remaining to be read and the amount of the largest data set remaining to be restored falls below a threshold.
7. A storage control method comprising: when writing n sets of data (n is an integer of three or more) into a first storage device, using a computer, adding dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculating (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, when reading the n sets of data from the first storage device, using a computer, concurrently performs a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, wherein after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, the computer performs processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and the computer temporarily stops the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
A storage control method involves writing and reading 'n' (3 or more) data sets. When writing to a first storage device, smaller data sets are padded with dummy data to match the size of the largest data set. Then, 'n-1' parity sets are calculated and stored in a second storage device. When reading from the first storage device, the smallest data set is read concurrently with restoring the other data sets using the parity sets and dummy data. After partially restoring the larger data sets, the remaining portions are restored using the already-read smallest data set in parallel with reading. The restore process pauses when the difference between the amount of the smallest data set remaining to be read and the amount of the largest data set remaining to be restored falls below a threshold.
8. The storage control method according to claim 7 , wherein after temporarily stopping the processing of restoring the two or more sets of data, the computer calculates a threshold value by using the size of data yet to be restored in the set of data having the largest size, restoration processing speed of the two or more sets of data, the size of data of the second set of data yet to be read from the first storage device, and read processing speed of the second set of data, and, when the differential value becomes equal to or larger than the threshold value, resumes the processing of restoring the two or more sets of data.
This storage control method, as described above, calculates a threshold value after pausing the restore process. The threshold calculation uses: the amount of data remaining to be restored in the largest data set, the restoration speed of the larger data sets, the amount of the smallest data set remaining to be read, and the read speed of the smallest data set. The method resumes restoring the larger data sets when the difference between the amount of smallest data set remaining to be read and the amount of the largest data set remaining to be restored becomes greater than or equal to this calculated threshold.
9. The storage control method according to claim 7 , wherein the computer writes m sets of data including the n sets of data (m is an integer more than n) into the first storage device, and reads the written m sets of data from the first storage device, and the second set of data is data having a smallest size among the m sets of data.
In this storage control method, as described above, 'm' data sets (where 'm' is greater than 'n') are written to and read from the first storage device. The smallest data set, used for concurrent reading and restoration, is selected from these 'm' data sets. The method involves writing and reading 'n' sets of data (n is an integer of three or more) into a first storage device, adding dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculating (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, performing, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and temporarily stopping the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
10. The storage control method according to claim 9 , wherein the first set of data is data having a largest size among the m sets of data.
In this storage control method, as described above, where 'm' data sets (where 'm' is greater than 'n') are written and read, and the smallest data set is selected from these 'm' data sets, the largest data set, used for padding, is also selected from these 'm' data sets. The method involves writing and reading 'n' sets of data (n is an integer of three or more) into a first storage device, adding dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculating (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, performing, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and temporarily stopping the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
11. The storage control method according to claim 7 , wherein the computer performs the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data in descending order of data size of the data sets.
This storage control method, as described above, restores the larger data sets (using parity sets and dummy data) in descending order of their data size. The method involves writing and reading 'n' sets of data (n is an integer of three or more) into a first storage device, adding dummy data to other sets of data except for a first set of data having a largest size among the n sets of data such that sizes of other sets of data become equal to the size of the first set of data, calculating (n−1) parities based on the first set of data and the other sets of data to which the dummy data is added, and storing the (n−1) parities into a second storage device, concurrently performing, when reading the n sets of data from the first storage device, a processing of reading a second set of data having a smallest size among the n sets of data from the first storage device and a processing of restoring each of two or more sets of data in the n sets of data except for the second set of data, by using the (n−1) parities and the dummy data, performing, after completing part of the processing of restoring the two or more sets of data by using the (n−1) parities and the dummy data, a processing of restoring a remaining region yet to be restored in each of the two or more sets of data by using the (n−1) parities and data of the second set of data already read from the first storage device, in parallel with the processing of reading, and temporarily stopping the processing of restoring the two or more sets of data when a differential value calculated by subtracting the size of data of the second set of data yet to be read from the first storage device, from the size of data yet to be restored in the set of data having the largest size among the two or more sets of data is equal to or smaller than a predetermined value.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 28, 2014
June 13, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.