Method and apparatus for reducing redundant storing of blocks of data on a server
First Claim
1. A method for selectively storing blocks of data, comprising:
- (a) accessing a computer file comprising a plurality of bytes of data;
(b) defining a block of data as a current block, wherein the block of data comprises the plurality of bytes;
(c) calculating a checksum from a rolling error identification code for the current block;
(d) identifying that the checksum does not exist in a database;
(e) determining whether the method has advanced one block length through the computer file;
(f) if the method has advanced one block length through the computer file, moving back one block length to form a unique block of data, defining the unique block of data as the current block, and storing the current block into an archive file; and
(g) otherwise, advancing one byte to form a new block of data, defining the new block of data as the current block, and returning to step (c).
8 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for selectively storing data on a server. The method operates by accessing a computer file and defining a data block as a current block of data. The current block is subsequently checksummed using a rolling error identification code. The method then determines if the calculated checksum for the current block has been previously stored in a database. If a matching checksum for the data is found in the database, then a duplicate of the current block already exists and the process repeats by selecting a new block of data. Alternatively, if the calculated checksum is absent from the checksum and the process has advanced one block length, the process moves back one block length and stores the current block in an archive. Otherwise, the checksum advances one byte forward to form a new current block of data and the process repeats.
-
Citations
20 Claims
-
1. A method for selectively storing blocks of data, comprising:
-
(a) accessing a computer file comprising a plurality of bytes of data; (b) defining a block of data as a current block, wherein the block of data comprises the plurality of bytes; (c) calculating a checksum from a rolling error identification code for the current block; (d) identifying that the checksum does not exist in a database; (e) determining whether the method has advanced one block length through the computer file; (f) if the method has advanced one block length through the computer file, moving back one block length to form a unique block of data, defining the unique block of data as the current block, and storing the current block into an archive file; and (g) otherwise, advancing one byte to form a new block of data, defining the new block of data as the current block, and returning to step (c). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for reducing redundant storing of blocks of data, comprising:
-
(a) accessing a computer file comprising a plurality of bytes of data; (b) defining a block of data as a current block, wherein the block of data comprises the plurality of bytes; (c) calculating a verification value for the current block; (d) determining if the verification value for the current block is stored in a database; (e) if the verification value is absent from the database, advancing one byte to form a new block of data, defining the new block of data as the current block, and returning to step (c); and
,(f) otherwise, incrementing a reference count in the database, selecting an original block of data, defining the original block of data as the current block, and returning to step (c). - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus for selectively storing blocks of data to a backup server comprising:
-
means for accessing a computer file comprising a plurality of bytes of data; means for defining a block of data as a current block; means for calculating a checksum from a rolling error identification code for the current block; means for determining if the checksum for the current block is stored in a database; means for determining whether one block length has been advanced in the computer file; means for moving back one block length to form a unique block of data, defining the unique block of data as the current block, and storing the current block in an archive file, in response to the block length having been advanced in the computer file; and means for advancing one byte to form a new block of data and defining the new block of data as the current block in response to the block length not having been advanced in the computer file. - View Dependent Claims (20)
-
Specification