IP Library Granted Patent US 8,578,359
Granted Patent B2
US 8,578,359 · App. 10/593,051 · Granted Nov 5, 2013

Method and apparatus for reliable in-place update

Inventors: Evyatar Meller (Petach-Tikva, IL); Sharon Peleg (Ramat Hasharon, IL)
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 8,578,359
App. No.
10/593,051
Granted
Nov 5, 2013
Kind
B2
Abstract

Method and apparatus for in-place updating an old version of a file stored on a storage device to form a new version, wherein the old version includes blocks. The form of the old version is determined for indicating at which end of the old version free space is located, as well as determining whether an update package is a corresponding update package for the form. If the update package is a corresponding update package, blocks in the old version are updated according to the update package, giving rise to a new version having an alternative form, where free space in the new version is at an opposite end to the old version.

Claims (29)

1. A method for in-place updating an old version of a file stored on a storage device to form a new version, the old version including blocks, the method comprising:

determining a form of said old version, said determined form indicating an end of the old version at which free space is located;

comparing a form of a received update package, which indicates a direction in which said received update package updates a file, with said form of said old version to determine if said update package corresponds to said form of said old version;

determining whether the amount of free space in the old version is large enough to allow in-place update of the old version to the new version; and

when the amount of free space in the old version is determined to be large enough to allow in-place update, updating blocks in said old version in said direction of said update package, if said form of said received update package corresponds to said determined form of said old version, such that a new version having an alternative form is generated, wherein free space in the new version is located at an end opposite to that of the old version.

2. The method of claim 1 , wherein said determined form of said old version is a B-form and wherein said alternative form of said new version is an E-form.

3. The method of claim 1 , wherein said determined form of said old version is an E-form and wherein said alternative form of said new version is a B-form.

4. The method of claim 1 , further comprising:

for each block in said new version, verifying that content in said new block is successfully stored.

5. The method of claim 1 wherein said storage device is accommodated in a cellular telephone.

6. The method of claim 1 , further comprising:

when the amount of free space in the old version is not determined to be large enough to allow in-place update, enlarging said free space to allow said in-place update, wherein said enlarging includes:

updating said old version to a temporary version having content equivalent to said old version with an alternative form to said old version and a larger free space than in said old version; and

updating said temporary version to form said new version.

7. An apparatus for in-place updating an old version of a file stored on a storage device to form a new version, the old version including blocks, the apparatus comprising:

a storage device; and

a processor configured to perform the following:

determine a form of said old version, said determined form indicating an end of the old version at which free space is located; compare a form of a received update package, which indicates a direction in which said received update package updates a file, with said form of said old version to determine if said form of said update package corresponds to said determined form of said old version;

determining whether the amount of free space in the old version is large enough to allow in-place update of the old version to the new version; and

update blocks in said old version in said direction of said update package, if said form of said received update package corresponds to said determined form of said old version, such that a new version having an alternative form is generated, wherein free space in the new version is located at an end opposite to that of the old version.

8. A program storage memory readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method for in-place updating an old version of a file stored on a storage device to form a new version, the old version including blocks, the method comprising:

determining a form of said old version, said determined form indicating an end of the old version at which free space is located;

comparing a form of a received update package, which indicates a direction in which said received update package updates a file, with said form of said old version to determine if said form of said received update package corresponds to said form of said old version;

determining whether the amount of free space in the old version is large enough to allow in-place update of the old version to the new version; and

updating blocks in said old version in said direction of said received update package, if said form of said received update package corresponds to said form of said old version, such that a new version having an alternative form is generated, wherein free space in the new version is located at an end opposite to that of the old version.

9. A computer program-product comprising a non-transitory computer useable medium having computer readable program code embodied therein for in-place updating an old version of a file stored on a storage device to form a new version, the old version including blocks, the computer program product comprising:

computer readable program code for causing the computer to determine (i) a form of said old version, said determined form indicating at which end of the old version free space is located, and (ii) if a form of a received update package, indicating a direction in which said received update package update a file, corresponds to said form of said old version;

computer readable program code for causing the computer determine whether the amount of free space in the old version is large enough to allow in-place update of the old version to the new version; and

computer readable program code for causing the computer, upon determining the form of said old version and that the received update package corresponds to said form of said old version, to update blocks in said old version the update direction of said corresponding update package, such that a new version having an alternative is generated, wherein free space in the new version located at an end opposite to that of the old 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2007
From: MELLER, EVYATAR; PELEG, SHARON
To: RED BEND LTD.
Reel/Frame 019659/0005 →
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 →
Continuity (2)
Provisional Application 60552752 · Mar 15, 2004
Related Publication 20080320461A1 · Dec 25, 2008