Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
First Claim
1. A method of updating data in a redundant array storage system that includes a plurality of data pages and a corresponding parity page, the method comprising:
- performing multiple modifications to the plurality of data pages;
deferring update of the parity page until after the multiple modifications have been performed;
updating the parity page in a single parity page update operation to bring the parity page up to date with the multiple modifications performed on the plurality of data pages, wherein updating the parity page in a single parity page update operation comprises updating the parity page based on most recent versions of each of the plurality of data pages;
retaining information in a data log for undoing the multiple modifications and for re-doing the multiple modifications;
detecting loss of one of the most recent versions of the plurality of data pages due to a system failure, the system failure occurring after one or more of the plurality of data pages in the redundant array storage system is updated to reflect the multiple modifications and before updating the parity page; and
regenerating the one of the most recent versions of the plurality of data pages based on the information in the data log and a stale version of the parity page.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage system is disclosed. The computer-implemented apparatus includes, 1) a redundant array data storage system having a plurality of data pages and a corresponding parity page residing therein, each page of the plurality of data pages and the parity page containing version information indicating a version of content in the page, 2) a memory-resident plurality of data pages corresponding to the plurality of data pages residing in the redundant array data storage system, 3) a data log retaining modification information defining any differences between content of the memory-resident plurality of data pages and content of the plurality of data pages residing in the redundant array data storage system, and 4) control logic for deferring modification of the parity page following modification of one of the plurality of data pages. The control logic further includes control logic for re-creating content of one of the plurality of data pages or the parity page by applying the modification information in the data log to the memory-resident plurality of data pages.
-
Citations
24 Claims
-
1. A method of updating data in a redundant array storage system that includes a plurality of data pages and a corresponding parity page, the method comprising:
-
performing multiple modifications to the plurality of data pages; deferring update of the parity page until after the multiple modifications have been performed; updating the parity page in a single parity page update operation to bring the parity page up to date with the multiple modifications performed on the plurality of data pages, wherein updating the parity page in a single parity page update operation comprises updating the parity page based on most recent versions of each of the plurality of data pages; retaining information in a data log for undoing the multiple modifications and for re-doing the multiple modifications; detecting loss of one of the most recent versions of the plurality of data pages due to a system failure, the system failure occurring after one or more of the plurality of data pages in the redundant array storage system is updated to reflect the multiple modifications and before updating the parity page; and regenerating the one of the most recent versions of the plurality of data pages based on the information in the data log and a stale version of the parity page. - View Dependent Claims (2, 3, 8, 9)
-
-
4. A method of updating data in a redundant array storage system that includes a plurality of data pages and a corresponding parity page, the method comprising:
-
performing multiple modifications to the plurality of data pages; deferring update of the parity page until after the multiple modifications have been performed; updating the parity page in a single parity page update operation to bring the parity page up to date with the multiple modifications performed on the plurality of data pages; retaining information in a data log for undoing the multiple modifications and for re-doing the multiple modifications; detecting loss of a most recent version of one of the plurality of data pages and loss of a stale version of the one of the plurality of data pages due to a system failure; regenerating the stale version of the one of the plurality of data pages based on a stale version of the parity page; and regenerating the most recent version of the one of the plurality of data pages from the stale version of the one of the plurality of data pages and from the information in the data log for re-doing the multiple modifications. - View Dependent Claims (5, 6)
-
-
7. A method of updating data in a redundant array storage system that includes a plurality of data pages and a corresponding parity page, the method comprising:
-
performing multiple modifications to the plurality of data pages; deferring update of the parity page until after the multiple modifications have been performed; updating the parity page in a single parity page update operation to bring the parity page up to date with the multiple modifications performed on the plurality of data pages; retaining information in a data log for re-doing the multiple modifications; detecting loss of most recent versions of the plurality of data pages generated by the multiple modifications and loss of at least one stale version of a first data page of the plurality of data pages due to a system failure, the system failure occurring after updating the parity page to an up-to-date parity page that is up to date with the multiple modifications; regenerating each of the most recent versions of the plurality of data pages except a most recent version of the first data page based on the information in the data log for re-doing the multiple modifications; and regenerating the most recent version of the first data page by combining the up-to-date parity page with the most recent versions of the plurality of data pages regenerated based on the information in the data log.
-
-
10. An article of manufacture including one or more computer-readable media that embody a program of instructions to update data in a redundant array storage system that includes a plurality of data pages and a corresponding parity page, wherein the program of instructions, when executed by one or more processors in a processing system, causes the one or more processors to:
-
perform multiple modifications to the plurality of data pages; defer update of the parity page until after the multiple modifications have been performed; and update the parity page in a single parity page update operation to bring the parity page up to date with the multiple modifications performed on the plurality of data pages; retain information in a data log for undoing the multiple modifications and for re-doing the multiple modifications; detect loss of one of the most recent versions of the plurality of data pages due to a system failure, the system failure occurring after one or more of the plurality of data pages in the redundant array storage system is updated to reflect the multiple modifications and before updating the parity page; and regenerate the one of the most recent versions of the plurality of data pages based on the information in the data log and a stale version of the parity page. - View Dependent Claims (11, 13, 14, 15)
-
-
12. A data processing system comprising:
-
a redundant array storage system that includes a plurality of data pages and a corresponding parity page; and a computer coupled to the redundant array storage system, the computer including a processing unit and a memory, the memory having stored therein a program of instructions to configure the computer to update data in the redundant array storage system, wherein the program of instructions, when executed by the processing unit of the computer, causes the computer to; perform multiple modifications to the plurality of data pages; defer update of the parity page until after the multiple modifications have been performed; and update the parity page in a single parity page update operation to bring the parity page up to date with the multiple modifications performed on the plurality of data pages; retain information in a data log for undoing the multiple modifications and for re-doing the multiple modifications; detect loss of one of the most recent versions of the plurality of data pages due to a system failure, the system failure occurring after one or more of the plurality of data pages in the redundant array storage system is updated to reflect the multiple modifications and before updating the parity page; and regenerate the one of the most recent versions of the plurality of data pages based on the information in the data log and a stale version of the parity page.
-
-
16. An article of manufacture including one or more computer-readable media that embody a program of instructions to update data in a redundant array storage system that includes a plurality of data pages and a corresponding parity page, wherein the program of instructions, when executed by one or more processors in a processing system, causes the one or more processors to:
-
perform multiple modifications to the plurality of data pages; defer update of the parity page until after the multiple modifications have been performed; update the parity page in a single parity page update operation to bring the parity page up to date with the multiple modifications performed on the plurality of data pages; retain information in a data log for undoing the multiple modifications and for re-doing the multiple modifications; detect loss of a most recent version of one of the plurality of data pages and loss of a stale version of the one of the plurality of data pages due to a system failure; regenerate the stale version of the one of the plurality of data pages based on a stale version of the parity page; and regenerate the most recent version of the one of the plurality of data pages from the stale version of the one of the plurality of data pages and from the information in the data log for re-doing the multiple modifications. - View Dependent Claims (17, 18)
-
-
19. A method of recovering data in a redundant array storage system that includes a plurality of data pages and a parity page, the method comprising:
-
detecting loss of a first data page of the plurality of data pages after modification of a second data page of the plurality of data pages and before the parity page is modified to reflect the modification of the second data page; undoing the modification to the second data page to generate a previous version of the second data page that corresponds to the parity page; and recovering the first data page using the previous version of the second data page and the parity page. - View Dependent Claims (20, 21, 22, 23)
-
-
24. An article of manufacture including one or more computer-readable media that embody a program of instructions to recover data in a redundant array storage system that includes a plurality of data pages and a corresponding parity page, wherein the program of instructions, when executed by one or more processors in a processing system, causes the one or more processors to:
-
detect loss of a first data page of the plurality of data pages after modification of a second data page of the plurality of data pages and before the parity page is modified to reflect the modification of the second data page; undo the modification to the second data page to generate a previous version of the second data page that corresponds to the parity page; and recover the first data page using the previous version of the second data page and the parity page.
-
Specification