Patent ID: 8825949

Claim:
A method for regulating I/O requests in a redundant array of inexpensive discs (RAID) volume, the method comprising: determining a first set of one or more logical block addresses (LBAs) of a RAID volume stripe addressed by a first request not requiring access to a parity strip according to a logical layout of the LBAs as viewable by a host; processing the first request not requiring access to a parity strip and addressing the first set of one or more LBAs of a RAID volume stripe; determining a second set of one or more LBAs of the RAID volume stripe addressed by a second request not requiring access to a parity strip according to the logical layout of the LBAs as viewable by a host; processing the second request not requiring access to a parity strip and addressing a second set of one or more LBAs of the RAID volume stripe and received during processing of the first request not requiring access to a parity strip at least partially simultaneous to the processing the first request not requiring access to a parity strip; queuing a request requiring access to a parity strip and addressing one or more LBAs of the RAID volume stripe and received during the processing of at least one of the first request not requiring access to a parity stripe and the second request not requiring access to a parity stripe; determining a RAID volume stripe addressed by the request requiring access to a parity strip according to a physical layout of the LBAs maintained internally by a RAID controller; queuing all access requests addressing the RAID volume stripe previously addressed by the request requiring access to a parity strip that are received following the request requiring access to a parity strip; processing the request requiring access to a parity strip following the processing of both the first request not requiring access to a parity strip and addressing the first set of one or more LBAs of the RAID volume stripe and the second request not requiring access to a parity strip and addressing the second set of one or more LBAs of the RAID volume stripe; and processing an access request addressing the RAID volume stripe received during the processing of the request requiring access to a parity strip following the processing of the request requiring access to a parity strip.