Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
OwnerRoss Neil Williamsinventor
Life of this patent
Estimating the term…
Loading patent…
OwnerRoss Neil Williamsinventor
Estimating the term…
This invention provides a method and apparatus for detecting common spans within one or more data blocks by partitioning the blocks (FIG. 4) into subblocks and searching the group of subblocks (FIG. 12) (or their corresponding hashes (FIG. 13)) for duplicates. Blocks can be partitioned into subblocks using a variety of methods, including methods that place subblock boundaries at fixed positions (FIG. 3), methods that place subblock boundaries at data-dependent positions (FIG. 3), and methods that yield multiple overlapping subblocks (FIG. 6). By comparing the hashes of subblocks, common spans of one or more blocks can be identified without ever having to compare the blocks or subblocks themselves (FIG. 13). This leads to several applications including an incremental backup system that backs up changes rather than changed files (FIG. 25), a utility that determines the similarities and differences between two files (FIG. 13), a file system that stores each unique subblock at most once (FIG. 26), and a communications system that eliminates the need to transmit subblocks already possessed by the receiver (FIG. 19).
A method for organizing a block b of digital data for storage, communication, or comparison, comprising the step of:
A method for comparing one or more blocks, comprising the steps of:
A method for representing one or more blocks comprising a collection of subblocks and block representatives which are mapped to lists of entries which identify subblocks;
A method for representing one or more blocks comprising a collection of subblocks and block representatives which are mapped to lists of entries which identify subblocks;
A method for representing one or more blocks comprising a collection of subblocks and block representatives which are mapped to lists of entries which identify subblocks;
A method for an entity E1 to communicate a block X to E2 where E1 possesses the knowledge that E2 possesses a group of Y subblocks Y.sub.1 . . . Y.sub.m, comprising the steps of:
A method for an entity E1 to communicate one or more subblocks of a group X of subblocks X.sub.1 . . . X.sub.n to E2 where E1 possesses the knowledge that E2 possesses a block Y, comprising the steps of:
A method for an entity E1 to communicate a block X to E2 where E1 possesses the knowledge that E2 possesses a block Y, comprising the steps of:
A method for constructing a block D from a block X and a group Y of subblocks Y.sub.1 . . . Y.sub.m such that X can be constructed from Y and D, comprising the steps of:
A method for constructing a block D from a group X of subblocks X.sub.1 . . . X.sub.n and a block Y such that X can be constructed from Y and D, comprising the steps of:
A method for constructing a block D from a block X and a block Y such that X can be constructed from Y and D, comprising the steps of:
A method for constructing a block D from a block X and a projection Y said projection comprising a collection of elements wherein said elements comprises a subblock in Y, an identity of a subblock in Y, or a reference of a subblock in Y, such that X can be constructed from Y and D, comprising the steps of:
A method for constructing a block X from a block Y and a block D, comprising the steps of:
A method for constructing a group X of subblocks X.sub.1 . . . X.sub.n from a block Y and a block D, comprising the steps of:
A method for communicating a data block X from one entity E1 to another entity E2, comprising the steps of:
A method for communicating a block X from one entity E1 to another entity E2, comprising the steps of:
A method for an entity E2 to communicate to an entity E1 the fact that E2 possesses a block Y, comprising the steps of:
A method for an entity E1 to communicate a subblock X.sub.1 to an entity E2, comprising the steps of:
An apparatus for organizing a block b of digital data for storage, communication, or comparison, comprising
Dependencies are inferred from the claim text.