IP Library Granted Patent US 7,599,970
Granted Patent B2
US 7,599,970 · App. 11/079,910 · Granted Oct 6, 2009

Method and apparatus for updating a stored version of content stored in a storage device

Assignee: Red Bend Ltd.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,599,970
App. No.
11/079,910
Granted
Oct 6, 2009
Kind
B2
Abstract

A method and an apparatus for updating a stored version of content stored in a storage device to an updated version using an update package. The update package is adapted for updating an original version of content to the updated version. In addition updating is carried out in accordance with an update sequence. A determination is made whether the stored version is the original version or an intermediate version derived therefrom. If the stored version is an intermediate version, a resume location in the stored version is determined, and if the stored version is determined to be an original version or an intermediate version, the update package is used to update the stored version to the updated version starting from the resume location.

Claims (119)

1. A method of updating a stored version of content stored in a storage device to an updated version using an update package, wherein the update package is adapted to update an original version of content to the updated version and wherein the updating of blocks is carried out in accordance with an update sequence of blocks, the method comprising:

determining whether the stored version is the original version, and if so, updating said stored version to said updated version using the update package;

otherwise, determining, while using an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, and stored in one or more hosting blocks of the stored version, whether the stored version is an intermediate version derived from the original version and if so, searching for a resume location in said stored version, updating said stored version to said updated version starting from the resume location using the update package and recovering the one or more hosting blocks to include content being part of the updated version,

wherein an original version comprises a set of original blocks;

wherein an updated version comprises a set of undated blocks, all of which were original blocks that required updating;

wherein an intermediate version comprises an ordered set of all original blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version; and

wherein the resume location in case the determined version is an intermediate version is the intermediate block.

2. The method of claim 1 , wherein upon determining that said stored version is neither the original version nor an intermediate version derived therefrom, the method further comprising:

determining if the stored version is an alien version that cannot be updated in accordance with the update package, and if so,

providing an appropriate indication.

3. The method of claim 2 , wherein upon determining that the stored version is an alien version the method further comprising:

refraining further updating the stored version to the updated version.

4. The method of claim 1 , wherein determining whether the stored version is the original version includes:

calculating signatures for blocks in the stored version; and

comparing calculated signatures with signatures of blocks stored in association with the update package.

5. A method of classifying a stored version of content stored in a storage device, the classifying corresponding to an update package and an update sequence of blocks, the method comprising:

determining whether the content is classified as one of: an original version, an updated version, an intermediate version, or an alien version that cannot be updated in accordance with the update package;

wherein an original version comprises a set or ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block, that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version; and

wherein the determining uses only blocks used for storing data being part of the stored version, blocks being part of a backup buffer and the update package.

6. A method for reliably updating a stored version of content stored in a storage device to an updated version using an update package, the method comprising:

checking an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, for indicating whether the update package corresponds to the stored version and if so, searching for a resume location in said stored version and updating said stored version to said updated version starting from the resume location,

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block, that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version;

and wherein the resume location in case the determined version is an intermediate version is the intermediate block.

7. An embedded device for updating a stored version of content stored in a storage device to an updated version using an update package, wherein the update package is adapted for updating an original version of content to the updated version and wherein the updating is carried out in accordance with an update sequence, the device comprising:

an original version determining unit embedded on at least one of the computer and the machine-readable memory configured to determine whether the stored version is the original version;

an intermediate version determining unit embedded on at least one of the computer and the machine-readable memory configured to determine, while using an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, and stored in one or more hosting blocks of the stored version, whether the stored version is an intermediate version derived from the original version;

a searching unit embedded on at least one of the computer and the machine-readable memory configured to search for a resume location in said stored version; and

an updating unit embedded on at least one of the computer and the machine-readable memory configured to update said stored version to said updated version starting from the resume location using the update package, the updating unit is configured to recover the one or more hosting blocks to include content being part of the updated version,

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version; and

wherein the resume location in case the determined version is an intermediate version is the intermediate block.

8. The device of claim 7 , further comprising:

an alien version determining unit embedded on at least one of the computer and the machine-readable memory configured to determine whether the stored version is an alien version that cannot be updated in accordance with the update package and if so provide an alien indication; and

an output module embedded on at least one of the computer and the machine-readable memory coupled to said alien version determining unit, configured to provide an appropriate indication upon receiving an alien indication indicative that the stored version is an alien version.

9. The device of claim 8 , wherein the updating unit is configured to refrain from updating the stored version to the updated version upon receiving the alien indication.

10. The device of claim 7 , wherein the original version determining unit includes:

a calculator embedded on at least one of the computer and the machine-readable memory configured to calculate signatures for blocks in the stored version; and

a comparison unit embedded on at least one of the computer and the machine-readable memory configured to compare calculated signatures with signatures of blocks stored in association with the update package.

11. An apparatus for classifying a stored version of content stored in a storage device, the classifying corresponding to an update package, the apparatus comprising:

a processor configured to determine whether the content is classified as one of: an original version, an update version, an intermediate version, or an alien version that cannot be updated in accordance with the update package;

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version;

wherein the resume location in case the determined version is an intermediate version is the intermediate block; and

wherein the processor is configured to use only blocks used for storing data being part of the stored version, blocks being part of a backup buffer the update package for determining classification.

12. A program storage device readable by machine, tangibly storing a program of instructions executable by the machine to perform method for updating a stored version of content stored in a storage device to an updated version using an update package, wherein the update package is adapted for updating an original version of content to the updated version and wherein the updating is carried out in accordance with an update sequence, the method comprising:

determining whether the stored version is the original version and if so updating said stored version to said updated version using the update package;

otherwise, determining, while using an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, and stored in one or more hosting blocks of the stored version, whether the stored version is an intermediate version derived from the original version and if so, searching for a resume location in said stored version, updating said stored version to said updated version starting from the resume location, using the update package and recovering the one or more hosting blocks to include content being part of the updated version,

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block are that have required updating updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version;

and wherein the resume location in case the determined version is an intermediate version is the intermediate block.

13. A computer program product comprising a machine-readable memory having computer readable program code stored therein for updating a stored version of content stored in a storage device to an updated version using an update package, wherein the update package is adapted for updating an original version of content to the updated version and wherein the updating is carried out in accordance with an update sequence, the computer program product comprising:

computer readable program code for causing the computer to determine whether the stored version is the original version and if so updating said stored version to said updated version using the update package;

otherwise, determining, while using an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, and stored in one or more hosting blocks of the stored version, whether the stored version is an intermediate version derived from the original version and if so, searching for a resume location in said stored version, updating said stored version to said updated version starting from the resume location, using the update package and recovering the one or more hosting blocks to include content being part of the updated version,

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version; and

wherein the resume location in case the determined version is an intermediate version is the intermediate block.

14. A program storage device readable by machine, tangibly storing a program of instructions executable by the machine to perform method for classifying a stored version of content stored in a storage device, the classifying corresponding to an update package, the method comprising:

determining whether the content is classified as one of: an original version, an updated version, an intermediate version, or an alien version that cannot be updated in accordance with the update package;

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version;

wherein the resume location in case the determined version is an intermediate version is the intermediate block; and

wherein determining uses only blocks used for storing data being part of the stored version, blocks being part of a backup buffer and the update package.

15. A computer program product comprising a machine-readable memory having computer readable program code stored therein for classifying a stored version of content stored in a storage device, the classifying corresponding to an update package, the computer program product comprising:

computer readable program code for causing the computer to determine whether the content is classified as one of: an original version, an update version, an intermediate version, or an alien version that cannot be updated in accordance with the update package;

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version;

wherein the resume location in case the determined version is an intermediate version is the intermediate block; and

wherein determining uses only blocks used for storing data being part of the stored version, blocks being part of a backup buffer and the update package.

16. A program storage device readable by machine, tangibly storing a program of instructions executable by the machine to perform method for reliably updating a stored version of content stored in a storage device to an updated version using an update package, the method comprising:

checking an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, for indicating whether the update package corresponds to the stored version and if so, searching for a resume location in said stored version and updating said stored version to said updated version starting from the resume location,

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version; and

wherein the resume location in case the determined version is an intermediate version is the intermediate block.

17. A computer program product comprising a machine-readable memory having computer readable program code stored therein for reliably updating a stored version of content stored in a storage device to an updated version using an update package, the computer program product comprising:

computer readable program code for causing the computer to check an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, for indicating whether the update package corresponds to the stored version and if so, to search for a resume location in said stored version and to update said stored version to said updated version starting from the resume location,

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block, that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks;

wherein an alien version is neither an original version, an updated nor an intermediate version; and

wherein the resume location in case the determined version is an intermediate version is the intermediate block.

18. An embedded device for reliably updating a stored version of content stored in a storage device to an updated version using an update package, the device comprising:

a status checking unit embedded on at least one of the computer and the machine-readable memory configured to check an in-place status indication indicative of the stored version classification as one of an original version, an updated version, an intermediate version and an alien version, for determining whether the update package corresponds to the stored version, and if so provide a correspondence indication;

wherein an original version comprises a set of ordered blocks, all of which are original blocks;

wherein an updated version comprises a set of ordered blocks, all of which that required updating, are updated blocks;

wherein an intermediate version comprises a set of ordered blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block that have required updating are updated blocks and wherein all the blocks between the intermediate block and the ending block are original blocks; and

wherein an alien version is neither an original version, an updated nor an intermediate version;

a searching unit embedded on at least one of the computer and the machine-readable memory coupled to said status checking unit, configured to search for a resume location in said stored version upon receiving the correspondence indication; and

an updating unit embedded on at least one of the computer and the machine-readable memory coupled to said status checking unit and said searching unit, the updating unit is configured to update said stored version to said updated version starting from the resume location upon receiving the correspondence indication; and

wherein the resume location in case the determined version is an intermediate version is the intermediate block.

19. A method of updating a stored version of content stored on a storage device to an updated version using an update package, wherein the update package is adapted to update an original version of content to the updated version in accordance with an update sequence of blocks, the method comprising:

reading the stored version block by block in accordance with the update sequence; determining if each read block is either an original or an updated block;

if a particular block is neither original nor updated, determining the particular block as a corrupted block if updated content of the particular block is obtainable using a backup buffer;

determining the stored version as an original version, if the stored version comprises a set of all original blocks;

determining the stored version as an updated version, if the stored version comprises a set of all original blocks, all of which that have required updating are updated blocks;

determining the stored version as an intermediate version, if the stored version comprises an ordered set of all original blocks having a beginning block, an intermediate block and an end block, wherein all the blocks between the beginning block and the intermediate block, including the intermediate block, that have required updating, are updated blocks except the intermediate block and wherein all the blocks between the intermediate block and the ending block are original blocks;

determining the stored version as an alien version if the stored version is not at least one of: an original version, an updated version, an intermediate version, contain a corrupted block;

updating said stored version to said updated version, starting from a resume location wherein the resume location is the intermediate block, if the determined stored version is an intermediate version; and

providing an indication if the determined stored version is an alien version.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Mar 4, 2015
From: MUSTANG MEZZANINE LP
To: RED BEND LTD.
Reel/Frame 035083/0471 →
SECURITY AGREEMENT Recorded Aug 22, 2012
From: RED BEND LTD.
To: MUSTANG MEZZANINE FUND LP
Reel/Frame 028831/0963 →
SECURITY AGREEMENT Recorded Sep 20, 2010
From: RED BEND LTD.
To: MUSTANG MEZZANINE FUND LP
Reel/Frame 025008/0297 →
SECURITY AGREEMENT Recorded Apr 16, 2009
From: RED BEND LTD.
To: MUSTANG MEZZANINE FUND LP
Reel/Frame 022551/0826 →
RELEASE OF LIENS Recorded Apr 16, 2009
From: PLENUS II, LIMITED PARTNERSHIP; PLENUS II (D.C.M.), LIMITED PARTNERSHIP
To: RED BEND LTD.
Reel/Frame 022552/0037 →
LIEN Recorded Mar 12, 2007
From: RED BEND LTD.
To: PLENUS II, LIMITED PARTNERSHIP; PLENUS II (D.C.M.), LIMITED PARTNERSHIP
Reel/Frame 018993/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2005
From: MELLER, EVYATAR; PELEG, SHARON
To: RED BEND LTD.
Reel/Frame 016728/0580 →
Continuity (2)
Provisional Application 6055270600 · Mar 15, 2004
Related Publication 20050216530A1 · Sep 29, 2005