Optimizing file replication using binary comparisons
First Claim
Patent Images
1. A method of maintaining an updated file, comprising:
- storing a first copy and a second copy of a base file at a first device and at a second device;
receiving a first set of changes to the first copy at the first device and a second set of changes to the first copy at the second device;
determining a first difference between the changed first copy and the second copy at the first device, and a second difference between the changed first copy and the second copy at the second device;
transmitting the first difference and the second difference to a server;
receiving the first difference or the second difference first in time at the server;
accepting the difference received first in time at the server if the base file at the server is the same as the base file that was stored at the device associated with the difference received first in time, otherwise rejecting the difference at the server;
rejecting the difference received second in time at the server; and
transmitting a third difference from the server to the device associated with the difference received second in time, and applying the third difference to the second copy of the base file stored at the device.
2 Assignments
0 Petitions
Accused Products
Abstract
Client and server based copies of a file are maintained in synchronicity as changes are made to the file. Data is compared to a previous version known to both the client and server and a highly compressed representation of the differences between the two is generated. These differences, or “diffs”, are then transmitted, and may use extensions to the HTTP (HyperText Transport Protocol) protocol.
-
Citations
24 Claims
-
1. A method of maintaining an updated file, comprising:
-
storing a first copy and a second copy of a base file at a first device and at a second device; receiving a first set of changes to the first copy at the first device and a second set of changes to the first copy at the second device; determining a first difference between the changed first copy and the second copy at the first device, and a second difference between the changed first copy and the second copy at the second device; transmitting the first difference and the second difference to a server; receiving the first difference or the second difference first in time at the server; accepting the difference received first in time at the server if the base file at the server is the same as the base file that was stored at the device associated with the difference received first in time, otherwise rejecting the difference at the server; rejecting the difference received second in time at the server; and transmitting a third difference from the server to the device associated with the difference received second in time, and applying the third difference to the second copy of the base file stored at the device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-readable medium having stored thereon computer-executable instructions for performing a method of maintaining an updated file, comprising:
-
storing a first copy and a second copy of a base file at a first device and at a second device; receiving a first set of changes to the first copy at the first device and a second set of changes to the first copy at the second device; determining a first difference between the changed first copy and the second copy at the first device, and a second difference between the changed first copy and the second copy at the second device; transmitting the first difference and the second difference to a server; receiving the first difference or the second difference first in time at the server; accepting the difference received first in time at the server if the base file at the server is the same as the base file that was stored at the device associated with the difference received first in time, otherwise rejecting the difference at the server; rejecting the difference received second in time at the server; and transmitting a third difference from the server to the device associated with the difference received second in time, and applying the third difference to the second copy of the base file stored at the device. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification