Patent ID: 8074149

Claim:
A method, comprising: identifying a current data stripe that includes a data block to be updated; identifying a first drive of a redundant disk drive array that stores current parity data for the current data stripe; identifying a second drive of the redundant disk drive array that stores the data block to be updated; reading the data block and reading a corresponding parity block from the first and second drives, respectively; computing a first XOR of the read data block and the read parity block to form an intermediate block of data; storing the first computed XOR in a temporary storage location, wherein said computing is done â€œon the flyâ€ during said storing without storing the read data block and the read parity block in memory; reading the temporary storage location and reading a new data block; computing a second XOR of the intermediate block and the new data block; and synchronously storing the second computed XOR in the first drive and storing the new data block into the second drive, wherein the first drive includes a parity drive; wherein the second computed XOR is transmitted directly to the first drive in response to the computation thereof; wherein the redundant disk drive array is coupled to a buffer by data path switch logic providing dynamically configurable data paths between logical data ports and physical data ports utilizing a mapping register which provides, for each of the logical data ports, an association with one of the physical data ports; wherein in response to a failure of one of the drives in the redundant disk drive array, the mapping register identifies the association between one of the logical data ports and one of the physical data ports attached to the failed one of the drives, and modifies the association by associating the one of the logical data ports with a predefined value indicating the failure of the one of the drives.