IP Library Granted Patent US 7,730,031
Granted Patent B2
US 7,730,031 · App. 10/188,512 · Granted Jun 1, 2010

Method and system for updating an archive of a computer file

Assignee: Computer Associates Think, Inc.
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,730,031
App. No.
10/188,512
Granted
Jun 1, 2010
Kind
B2
Abstract

A method and system for updating an archive of a computer file to reflect changes made to the file includes selecting one of a plurality of comparison methods as a preferred comparison method. The comparison methods include a first comparison method wherein the file is compared to an archive of the file and a second comparison method wherein a first set of tokens statistically representative of the file is computed and compared to a second set of tokens statistically representative of the archive of the file. The method further includes carrying out the preferred comparison method to generate indicia of differences between the file and the archive of the file for updating the archive of the file.

Claims (48)

1. A method for file archiving, comprising:

selecting a byte differencing comparison method from two or more available differencing comparison methods for a comparison between a file stored on a client computer and an archive of the file stored on a server computer, wherein the byte differencing comparison method is automatically selected prior to the comparison in response to the client computer determining that at least one optimization criteria is satisfied, wherein the byte differencing comparison method comprises:

comparing at least one byte associated with the file to at least one respective byte associated with the archive of the file;

generating a first indicia of difference between the file and the archive of the file using the byte differencing comparison method; and

updating the archive of the file stored on the server computer based on the first indicia of difference generated between the file and the archive of the file; and

selecting a block differencing comparison method from the two or more available differencing comparison methods for the comparison between the file stored on the client computer and the archive of the file stored on the server computer, wherein the block differencing comparison method is automatically selected prior to the comparison in response to the client computer determining that the at least one optimization criteria is not satisfied, wherein the optimization criteria comprises a network connection for the client computer having bandwidth below a threshold, wherein the block differencing comparison method comprises:

comparing a set of statistics representative of at least one block associated with the file to a set of statistics representative of at least one respective block associated with the archive of the file, wherein the at least one block associated with the file and the at least one respective block associated with the archive of the file each include a plurality of bytes;

generating a second indicia of difference between the file and the archive of the file using the block differencing comparison method; and

updating the archive of the file stored on the server computer based on the second indicia of difference generated between the file and the archive of the file.

2. The method of claim 1 , wherein the set of statistics associated with the file comprises at least one token associated with the file and wherein the set of statistics associated with the archive of the file comprises at least one token associated with the archive of the file, wherein the token associated with the file and the token associated with the archive of the file each comprise a cyclic redundancy code (CRC) value that provides statistical information about a block of data that comprises a 512-byte data segment.

3. The method of claim 2 , wherein generating the first indicia of difference using the byte differencing comparison method comprises:

generating, on the client computer, a forward delta from the file to the archive of the file, wherein the forward delta comprises data usable to generate the file from the archive of the file;

generating, on the client computer, a backward delta from the archive of the file to the file, wherein the backward delta comprises data usable to generate the archive of the file from the file;

applying the forward delta to the archive of the file stored on the server computer; and

storing the backward delta on the server computer.

4. The method according to claim 1 , wherein generating the first indicia of difference using the byte differencing comparison method comprises generating indicia of one or more individual data words that are different between the file and the archive of the file, and wherein generating the second indicia of difference using the block differencing comparison method comprises generating indicia of at least one block that includes a plurality of data words that are different between the file and the archive of the file.

5. The method according to claim 1 , wherein the optimization criteria comprises the file having a large size relative to storage available on the client computer.

6. The method according to claim 1 , wherein the optimization criteria comprises the file having a type assigned to one of the byte differencing comparison method or the block differencing comparison method.

7. The method according to claim 1 , wherein the file stored on the client computer and the archive of the file stored on the server computer are compressed.

8. A system for file archiving, the system comprising a Central Processing Unit (CPU) and a computer-readable storage medium tangibly embodying computer-executable instructions, wherein executing the computer-executable instructions on a processing device causes the processing device to:

select a byte differencing comparison method from two or more available differencing comparison methods for a comparison between a file stored on a client computer and an archive of the file stored on a server computer, wherein the byte differencing comparison method is automatically selected prior to the comparison in response to the client computer determining that at least one optimization criteria is satisfied, wherein the byte differencing comparison method comprises:

comparing at least one byte associated with the file to at least one respective byte associated with the archive of the file;

generating a first indicia of difference between the file and the archive of the file using the byte differencing comparison method; and

updating the archive of the file stored on the server computer based on the first indicia of difference generated between the file and the archive of the file; and

select a block differencing comparison method from the two or more available differencing comparison methods for the comparison between the file stored on the client computer and the archive of the file stored on the server computer, wherein the block differencing comparison method is automatically selected prior to the comparison in response to the client computer determining that the at least one optimization criteria is not satisfied, wherein the optimization criteria comprises a network connection for the client computer having bandwidth below a threshold, wherein the block differencing comparison method comprises:

comparing a set of statistics representative of at least one block associated with the file to a set of statistics representative of at least one respective block associated with the archive of the file, wherein the at least one block associated with the file and the at least one respective block associated with the archive of the file each include a plurality of bytes;

generating a second indicia of difference between the file and the archive of the file using the block differencing comparison method; and

updating the archive of the file stored on the server computer based on the second indicia of difference generated between the file and the archive of the file.

9. The system of claim 8 , wherein the set of statistics associated with the file comprises at least one token associated with the file and wherein the set of statistics associated with the archive of the file comprises at least one token associated with the archive of the file, wherein the token associated with the file and the token associated with the archive of the file each comprise a cyclic redundancy code (CRC) value that provides statistical information about a block of data that comprises a 512-byte data segment.

10. The system of claim 9 , wherein generating the first indicia of difference using the byte differencing comparison method comprises:

generating, on the client computer, a forward delta from the file to the archive of the file, wherein the forward delta comprises data usable to generate the file from the archive of the file;

generating, on the client computer, a backward delta from the archive of the file to the file, wherein the backward delta comprises data usable to generate the archive of the file from the file;

applying the forward delta to the archive of the file stored on the server computer; and

storing the backward delta on the server computer.

11. The system according to claim 8 , wherein generating the first indicia of difference using the byte differencing comparison method comprises generating indicia of one or more individual data words that are different between the file and the archive of the file, and wherein generating the second indicia of difference using the block differencing comparison method comprises generating indicia of at least one block that includes a plurality of data words that are different between the file and the archive of the file.

12. The system according to claim 8 , wherein the optimization criteria comprises the file having a large size relative to storage available on the client computer.

13. The system according to claim 8 , wherein the optimization criteria comprises the file having a type assigned to one of the byte differencing comparison method or the block differencing comparison method.

14. The system according to claim 8 , wherein the file stored on the client computer and the archive of the file stored on the server computer are compressed.

15. A system for file archiving, the system comprising a Central Processing Unit (CPU) and a computer-readable storage medium tangibly embodying computer-executable instructions, wherein executing the computer-executable instructions on a processing device causes the processing device to:

determine a previous comparison method used for a comparison between a file stored on a client computer and an archive of the file stored on a server computer, wherein the previous comparison method minimizes one of local storage or transfer time;

select a byte differencing comparison method for the comparison between the file stored on the client computer and the archive of the file stored on the server computer in response to determining that the byte differencing comparison method is the previous comparison method, wherein the byte differencing comparison method comprises:

comparing at least one byte associated with the file to at least one respective byte associated with the archive of the file;

generating a first indicia of difference between the file and the archive of the file using the byte differencing comparison method; and

updating the archive of the file stored on the server computer based on the first indicia of difference generated between the file and the archive of the file; and

select a block differencing comparison method for the comparison between the file stored on the client computer and the archive of the file stored on the server computer in response to determining that the block differencing comparison method is the previous comparison method, wherein the block differencing comparison method is selected in response to the client computer determining that at least one optimization criteria is not satisfied, wherein the optimization criteria comprises a network connection for the client computer having bandwidth below a threshold, wherein the block differencing comparison method comprises:

comparing a set of statistics representative of at least one block associated with the file to a set of statistics representative of at least one respective block associated with the archive of the file, wherein the at least one block associated with the file and the at least one respective block associated with the archive of the file each include a plurality of bytes;

generating a second indicia of difference between the file and the archive of the file using the block differencing comparison method; and

updating the archive of the file stored on the server computer based on the second indicia of difference generated between the file and the archive of the file.

Assignments (3)
CONSENT FOR REMOVAL OF INVENTOR Recorded Aug 31, 2005
From: SEGARS, ALEXANDER D.
To: COMPUTER ASSOCIATES THINK, INC.
Reel/Frame 016704/0296 →
GRANTED PETITION UNDER 37 C.F.R. SECTION 1.47(B) Recorded Feb 11, 2005
From: FORSTER, KARL D.
To: STERLING SOFTWARE, INC.
Reel/Frame 015710/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2004
From: STERLING SOFTWARE, INC.
To: COMPUTER ASSOCIATES THINK, INC.
Reel/Frame 015146/0933 →
Continuity (4)
Continuation 0999161300 · Nov 5, 2001
Continuation 0979789000 · Mar 1, 2001
Provisional Application 6018613700 · Mar 1, 2000
Related Publication 20040220980A1 · Nov 4, 2004