Patent ID: 7979633

Claim:
A method for managing storage of data in a plurality of storage devices operatively connected to a computer, each storage device having a plurality of blocks for storing data, comprising: generating block layout information of a storage operating system executing on the computer by determining which blocks within the plurality of blocks are allocated for storing data and which are unallocated; responsive to the block layout information, controlling the execution of I/O operations generated by the storage operating system by identifying a plurality of contiguous blocks within the plurality of blocks for use by the I/O operations so as to substantially maximize chain lengths of read operations for calculation of parity; determining whether a parity subtraction method or a recalculation method requires a fewest number of read operations to calculate parity for the I/O operations; selecting the parity subtraction method or the recalculation method for parity calculation based on which method requires the fewest number of read operations; and responsive to the block layout information and the parity calculation method selected, identifying the contiguous blocks within the plurality of blocks for use by the I/O operations.