Method and system for in-place updating content stored in a storage device
First Claim
1. A method for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, comprising:
- applying a first subgroup of an error recovery group of functions to data which is used in achieving an updated version in non-volatile storage, thereby generating an error recovery result; and
storing said error recovery result in non-volatile storage prior to writing updated content from volatile memory to non-volatile storage in place of original content;
wherein a part of said data can be recovered by applying another subgroup of said error recovery group of functions to said error recovery result and a result of said first subgroup applied to another part of said data.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for in-place updating original content of an original version stored in a non-volatile storage device and for yielding updated content of an updated version. 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 storage 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 buffer protecting content which is required in the update process.
15 Citations
30 Claims
-
1. A method for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, comprising:
-
applying a first subgroup of an error recovery group of functions to data which is used in achieving an updated version in non-volatile storage, thereby generating an error recovery result; and storing said error recovery result in non-volatile storage prior to writing updated content from volatile memory to non-volatile storage in place of original content; wherein a part of said data can be recovered by applying another subgroup of said error recovery group of functions to said error recovery result and a result of said first subgroup applied to another part of said data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, wherein there is an update sequence for updating content in said blocks in said non-volatile storage, the method comprising:
-
providing a predetermined number of blocks in non-volatile '"'"'storage for storing a XOR result; protecting original content in at least one instance of a protection buffer in volatile memory, each instance equivalent in size to said predetermined number of blocks and corresponding to at least one sequential block in said update sequence, wherein no two instances correspond to the same block in the update sequence and wherein for each instance, all original content protected in said instance originates from said at least one corresponding sequential blocks and is used to update said at least one corresponding sequential blocks; performing at least one XOR operation, thereby generating a XOR result, wherein at least one operand in each said at least one XOR operation includes at least part of a protection buffer instance; and writing said XOR result to said predetermined number of blocks prior to writing updated content from volatile memory to non-volatile storage in place of original content. - View Dependent Claims (15)
-
-
16. A method for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, comprising:
-
providing one block in non-volatile storage for storing a XOR result; performing at least one XOR operation, thereby generating said XOR result, wherein at least one operand in each said at least one XOR operation includes original content corresponding to at least part of a storage block or wherein at least one operand in each said at least one XOR operation includes updated content corresponding to at least part of a storage block; and writing said XOR result to said provided block prior to writing updated content from volatile memory to non-volatile storage in place of original content. - View Dependent Claims (17)
-
-
18. A method for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, wherein there is an update sequence for updating content in said blocks in said non-volatile storage, the method comprising:
-
prior to updating a storage block in non-volatile storage; (i) protecting in a protection buffer in volatile memory data related to said storage block which is required for updating said storage block or for updating any storage block later in said update sequence; and (ii) and writing said data related to said storage block which is required for updating said corresponding storage block or for updating any storage block later in said update sequence, or writing a function thereof, to non-volatile storage; wherein after using any of said data to update in volatile memory content corresponding to said storage block or corresponding to said any storage block later in said update sequence, said used data is replaced in said protection buffer by other data. - View Dependent Claims (19, 20, 21, 22, 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, the method comprising:
-
providing a protection buffer of equivalent size to a predetermined number of blocks; and prior to updating or simulating updating of content corresponding to a storage block, for each piece of data related to said corresponding storage block which is required for updating said corresponding storage block or for updating any storage block later in said update sequence performing the following;
if there is space available in said protection buffer, protecting or simulating protecting of said piece of data, but if there is no available space inserting said piece of data in said update package;wherein after said protected or simulated to be protected piece of data has been used to update or simulate update of content corresponding to said storage block or corresponding to said any storage block later in said update sequence, said used piece of data is replaced or simulated to be replaced in said protection buffer by other data.
-
-
26. A computer program product comprising a computer useable medium having computer readable program code embodied therein for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, the computer program product comprising:
-
computer readable program code for causing the computer to apply a first subgroup of an error recovery group of functions to data which is used in achieving an updated version in non-volatile storage, thereby generating an error recovery result; and computer readable program code for causing the computer to store said error recovery result in non-volatile storage prior to writing updated content from volatile memory to non-volatile storage in place of original content; wherein a part of said data can be recovered by applying another subgroup of said error recovery group of functions to said error recovery result and a result of said first subgroup applied to another part of said data.
-
-
27. A computer program product comprising a computer useable medium having computer readable program code embodied therein for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, wherein there is an update sequence for updating content in said blocks in said non-volatile storage, the computer program product comprising:
-
computer readable program code for causing the computer to provide a predetermined number of blocks in non-volatile storage for storing a XOR result; computer readable program code for causing the computer to protect original content in at least one instance of a protection buffer in volatile memory, each instance equivalent in size to said predetermined number of blocks and corresponding to at least one sequential block in said update sequence, wherein no two instances correspond to the same block in the update sequence and wherein for each instance, all original content protected in said instance originates from said at least one corresponding sequential blocks and is used to update said at least one corresponding sequential blocks; computer readable program code for causing the computer to perform at least one XOR operation, thereby generating a XOR result, wherein at least one operand in each said at least one XOR operation includes at least part of a protection buffer instance; and computer readable program code for causing the computer to write said XOR result to said predetermined number of blocks prior to writing updated content from volatile memory to non-volatile storage in place of original content.
-
-
28. A computer program product comprising a computer useable medium having computer readable program code embodied therein for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, the computer program product comprising:
-
computer readable program code for causing the computer to provide one block in non-volatile storage for storing a XOR result; computer readable program code for causing the computer to perform at least one XOR operation, thereby generating said XOR result, wherein at least one operand in each said at least one XOR operation includes original content corresponding to at least part of a storage block or wherein at least one operand in each said at least one XOR operation includes updated content corresponding to at least part of a storage block; and computer readable program code for causing the computer to write said XOR result to said provided block prior to writing updated content from volatile memory to non-volatile storage in place of original content.
-
-
29. A computer program product comprising a computer useable medium having computer readable program code embodied therein for in-place updating original content of an original version stored in non-volatile storage including blocks to yield updated content of an updated version, wherein there is an update sequence for updating content in said blocks in said non-volatile storage, the computer program product comprising:
-
computer readable program code for causing the computer to protect in a protection buffer in volatile memory data related to a storage block which is required for updating said storage block or for updating any storage block later in said update sequence, prior to updating said storage block in non-volatile storage; computer readable program code for causing the computer to write said data related to said storage block which is required for updating said corresponding storage block or for updating any storage block later in said update sequence, or writing a function thereof, to non-volatile storage, prior to updating said storage block in non-volatile storage; and computer readable program code for causing the computer, after using any of said data to update in volatile memory content corresponding to said storage block or corresponding to said any storage block later in said update sequence, to replace in said protection buffer said used data by other data.
-
-
30. A computer program product comprising a computer useable medium having computer readable program code embodied therein 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, the computer program product comprising:
-
computer readable program code for causing the computer to provide a protection buffer of equivalent size to a predetermined number of blocks; computer readable program code for causing the computer to perform the following;
prior to updating or simulating updating of content corresponding to a storage block, for each piece of data related to said corresponding storage block which is required for updating said corresponding storage block or for updating any storage block later in said update sequence performing the following;
if there is space available in said protection buffer, protecting or simulating protecting of said piece of data, but if there is no available space inserting said piece of data in said update package; andcomputer readable program code for causing the computer, after said protected or simulated to be protected piece of data has been used to update or simulate update of content corresponding to said storage block or corresponding to said any storage block later in said update sequence, to replace or simulate replacement in said protection buffer of said used piece of data by other data.
-
Specification