Block file system for minimal incremental data transfer between computing devices
First Claim
1. In a computing device, a method for a storing and transferring data, the method comprising:
- allocating a file system comprising a plurality of blocks linked together to form a chain of blocks;
receiving a request to store information in the file system;
in response to the request to store information, storing variable amounts of data in the blocks such that at least one block which is not at the end of the chain retains unused storage space capable of storing additional information;
receiving a request to modify information stored in the file system;
in response to the request to modify information, storing new data in at least one block which is not at the end of the chain;
receiving a request to update information stored on another device which corresponds to information stored in the file system; and
in response to the request to update information stored on another device, transferring only those blocks which have changed since the information stored on the other device was last updated.
4 Assignments
0 Petitions
Accused Products
Abstract
A portable computing device is described with a file system designed for providing improved data transfer methodology. The file system is implemented as a "Delta Block" File System (DBFS) comprising a file system designed specifically for the purpose of minimal delta calculation and minimum data transfer, particularly for portable storage devices which use solid state storage. The design of the DBFS minimizes the work required to compute changes to files and, hence, allows improved data transfer. Any new, removed, or modified blocks are transferred as changes. A simple checksum, CRC (cyclic redundancy checking), or similar comparison can be used to test a block for changes. Because block modifications are isolated to the proximity of the data change, only these blocks will be involved in a transfer. Furthermore, because the delta calculation is at the block level, it can be performed without knowledge of the data itself, thereby allowing any type of data to be compared and transferred. By supporting minimal transfer of data, the file system solves the problem of disproportionate data storage and communication speed situations, such as those encountered with portable computing devices.
130 Citations
20 Claims
-
1. In a computing device, a method for a storing and transferring data, the method comprising:
-
allocating a file system comprising a plurality of blocks linked together to form a chain of blocks; receiving a request to store information in the file system; in response to the request to store information, storing variable amounts of data in the blocks such that at least one block which is not at the end of the chain retains unused storage space capable of storing additional information; receiving a request to modify information stored in the file system; in response to the request to modify information, storing new data in at least one block which is not at the end of the chain; receiving a request to update information stored on another device which corresponds to information stored in the file system; and in response to the request to update information stored on another device, transferring only those blocks which have changed since the information stored on the other device was last updated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing system having an improved file system for storing and transferring information comprising:
-
a computing system having at least one processor and a memory; a plurality of blocks allocated in the memory and linked together to form a chain of blocks for storing information; means, responsive to a request to store information, for storing variable amounts of data in the blocks such that at least one block which is not at the end of the chain retains unused storage space capable of storing additional information; means, responsive to a request to modify information, for storing new data in at least one block which is not at the end of the chain; and means, responsive to a request to update information stored on another device, for transferring only those blocks which have changed since the information stored on the other device was last updated. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification