Method and system for in-place updating content stored in a storage device
First Claim
1. A method for reliably in-place updating original content of an original version stored in storage blocks of a non-volatile storage to yield updated content of an updated version, according to an update sequence for updating content in said blocks, wherein the non-volatile storage does not store the updated version in addition to the original version, the method comprising:
- obtaining an error recovery result indicative of a result achievable by applying a first error recovery function to data which is used in in-place updating the original content, wherein a part of said data is recoverable by applying a second error recovery function to (i) said error recovery result and (ii) another part of said data;
after obtaining the error recovery result, in-place updating the original content by writing the updated content to the non-volatile storage in place of the original content,wherein the data includes a single version of content.
5 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for in-place updating original content stored in a non-volatile storage device and for yielding updated content. Some of the described embodiments illustrate the possibilities for reduction in storage operations, storage blocks, and/or update package size. Some of the described embodiments include the writing of error recovery result(s) such as XOR result(s) which enable the recovery of data in case of an interruption of the update process. In some of the described embodiments, there is re-usage of a protection buffer containing content which is required in the update process.
-
Citations
46 Claims
-
1. A method for reliably in-place updating original content of an original version stored in storage blocks of a non-volatile storage to yield updated content of an updated version, according to an update sequence for updating content in said blocks, wherein the non-volatile storage does not store the updated version in addition to the original version, the method comprising:
-
obtaining an error recovery result indicative of a result achievable by applying a first error recovery function to data which is used in in-place updating the original content, wherein a part of said data is recoverable by applying a second error recovery function to (i) said error recovery result and (ii) another part of said data; after obtaining the error recovery result, in-place updating the original content by writing the updated content to the non-volatile storage in place of the original content, wherein the data includes a single version of content. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An apparatus for reliably in-place updating original content of an original version stored in storage blocks of a non-volatile storage to yield updated content of an updated version, wherein the non-volatile storage does not store the updated version in addition to the original version, the apparatus comprising:
-
an error recovery result obtaining unit for obtaining an error recovery result indicative of a result achievable by applying a first error recovery function to data which is used in in-place updating the original content, wherein a part of said data is recoverable by applying a second error recovery function to (i) said error recovery result and (ii) another part of said data; and an updating processor responsive to said error recovery result for in-place updating the original content by storing the updated content to the non-volatile storage in place of the original content, wherein the data includes a single version of content. - View Dependent Claims (23, 24)
-
-
25. A method for generating an update package for in place updating original content of an original version stored in non-volatile storage with blocks to yield updated content of an updated version, according to an update sequence, wherein the non-volatile storage does not store the updated version in addition to the original version, the method comprising:
-
providing a protection buffer of equivalent size to a predetermined number of blocks; and prior to in-place updating or simulating in-place updating of content stored in a storage block, for each segment of said storage block that (i) relates to a corresponding storage block and (ii) is required for updating said corresponding storage block or for updating any storage block later in said update sequence, when there is space available in said protection buffer, protecting or simulating protecting of said each segment, and when there is no available space, inserting said each segment in said update package, wherein after each of said protected or simulated to be protected segments has been used to update or simulate update of content of said corresponding storage block or to update content of said any storage block later in said update sequence, each of said used segments is marked as available for erasure and reuse in said protection buffer by other data, wherein said each segment includes a single version of content.
-
-
26. A non-transitory computer readable storage medium that stores a program of instructions that causes a computer to perform steps for reliably in-place updating original content of an original version stored in storage blocks of a non-volatile storage to yield updated content of an updated version, wherein the non-volatile storage does not store the updated version in addition to the original version, the steps comprising:
-
obtaining an error recovery result indicative of a result achievable by applying a first error recovery function to data which is used in in-place updating the original content, wherein a part of said data is recoverable by applying a second error recovery function to (i) said error recovery result and (ii) another part of said data; and after obtaining the error recovery result, in-place updating the original content by writing the updated content to the non-volatile storage in place of the original content, wherein the data includes a single version of content. - View Dependent Claims (27, 28, 29)
-
-
30. A method for reliably in-place updating original content of an original version stored in a non-volatile storage to yield updated content of an updated version, wherein the non-volatile storage does not store the updated version in addition to the original version, the method comprising:
-
a. prior to the in-place updating original content, obtaining an error recovery result achievable by applying at least one first error recovery function to data which is designated to be used in updating the original content, b. after obtaining the error recovery result, in-place updating the original content by storing the updated content to the non-volatile storage in place of the original content, wherein said error recovery result is usable for recovering a part of said data which becomes non-reliable resulting an interrupted in-place update, said recovery to be provided by applying at least one second error recovery function to (i) said error recovery result and (ii) to a reliable part of said data and/or derivatives thereof, wherein the data includes a single version of content. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. An apparatus for reliably in-place updating original content of an original version stored in storage blocks of a non-volatile storage to yield updated content of an updated version, wherein the non-volatile storage does not store the updated version in addition to the original version, the apparatus comprising:
-
a) an error recovery result obtaining unit for obtaining an error recovery result achievable by applying at least one first error recovery function to data which are designated to be used in in-place updating the original content, wherein said error recovery result is usable for recovering a part of said data which become non-reliable resulting an interrupted in-place update, said recovery to be provided by applying at least one second error recovery function to (i) said error recovery result and (ii) a reliable part of said data and/or derivatives thereof; and
wherein said unit is configured to obtain said error recovery result prior to a start of the updating process; andb) an updating processor responsive to said error recovery result for in-place updating the original content by storing the updated content to the non-volatile storage in place of the original content, wherein the data includes a single version of content. - View Dependent Claims (43, 44, 45)
-
-
46. A non-transitory computer-readable medium in which a computer program is recorded, said computer program comprising computer program code means able to be executed by a computer to perform steps for reliably in-place updating original content of an original version stored in a non-volatile storage to yield updated content of an updated version, wherein the non-volatile storage does not store the updated version in addition to the original version, the computer program causing the computer to execute the steps of:
-
(a) prior to an in-place updating of original content stored in the non-volatile storage, obtaining an error recovery result achievable by applying at least one first error recovery function to data, which includes a single version of content and which is designated to be used in updating the original content, (b) after obtaining the error recovery result, in-place updating the original content by storing updated content to the non-volatile storage in place of the original content, wherein said error recovery result is usable for recovering a part of said data which becomes non-reliable resulting an interrupted in-place update, said recovery to be provided by applying at least one second error recovery function to (i) said error recovery result and (ii) to a reliable part of said data and/or derivatives thereof, and wherein the updated version is stored in 1 storage blocks, where content stored in n out of the 1 storage blocks is updated, where n≦
1, and the method further comprises(c) obtaining an update package; and (d) reliably in-place updating the original content while performing no more than n+k storage operations, where k is a selectable predetermined number and k<
n.
-
Specification