Patent ID: 9442802
Filing Date: 2016-09-13
CPC Classification: G06F

Claim Text:
1. A data access method, performed by a controller in order to read data from a plurality of storage devices, the data access method comprising steps of: receiving a data read request that comprises information about a set of target data to be read from at least one logical address block; determining, according to the at least one logical address block, at least one target sub-stripe in which the set of target data is located, each of the at least one target sub-stripe comprising a plurality of user data sub-blocks and at least one parity data sub-block; and performing the following steps for each of the at least one target sub-stripe: issuing, by the controller, a plurality of I/O requests to the plurality of storage devices simultaneously in order to read all data in the target sub-stripe from the plurality of user data sub-blocks and from the at least one parity data sub-block, where the plurality of I/O requests comprise at least one first I/O request for reading at least one sub-block of user data included in the set of target data and comprise a plurality of second I/O requests for reading a plurality of sub-blocks of other related data except the at least one sub-block of user data included in the set of target data; wherein the other related data requested by the plurality of second I/O requests comprise at least one sub-block of parity data and at least one sub-block of user data which is not included in the set of target data; waiting for reading out of data from the plurality of storage devices; performing a first determination that determines whether or not all of the at least one sub-block of user data included in the set of target data requested by the at least one first I/O request is read out from the plurality of storage devices; performing, when all of the at least one sub-block of user data included in the set of target data is not read out from the plurality of storage devices, a second determination that determines whether or not data read out from the plurality of storage devices is enough to generate at least one sub-block of redundant data identical to the at least one sub-block of user data included in the set of target data that is not responded yet; and generating the at least one sub-block of redundant data if the second determination result determines yes; and performing a third determination that determines whether or not the at least one sub-block of user data included in the set of target data is already read out from the plurality of storage devices and responded during the period of generating the at least one sub-block of redundant data, and replying either the at least one sub-block of user data included in the set of target data which is read out from the plurality of storage devices or the at least one sub-block of redundant data to an application I/O request unit.