| US 7,457,826 B2 | ||
| Systems and methods for synchronization of items without snapshots | ||
| Irena Hudis, Bellevue, Wash. (US); Lev Novik, Bellevue, Wash. (US); Rajesh M. Rao, Sammamish, Wash. (US); Sameet H. Agarwal, Redmond, Wash. (US); and Vivek Jawahir Jhaveri, Seattle, Wash. (US) | ||
| Assigned to Microsoft Corporation, Redmond, Wash. (US) | ||
| Filed on Dec. 20, 2004, as Appl. No. 11/25,165. | ||
| Prior Publication US 2006/0136418 A1, Jun. 22, 2006 | ||
| Int. Cl. G06F 17/30 (2006.01) | ||
| U.S. Cl. 707—200 [707/1; 707/102; 709/249; 711/100; 711/200] | 13 Claims |

| 1. A method for synchronizing a mixed element between peer computer systems in a hardware software interface system, said
method comprising:
identifying a mixed element on a first peer computer system, wherein the mixed element comprises a structured data component
and an unstructured filestream, wherein the hardware software interface permits snapshotting of the structured data component
and does not permit the snapshotting of the unstructured filestream;
snapshotting the structured data component, wherein the snapshotting structured data component comprises i) copying the structured
data component to a copy structured data component such that for a duration associated with synchronization of the mixed element,
changes associated with target structured data component are made to the copy structured data component, ii) preventing changes
to said structured data component while it is being copied to a synchronization peer iii) making a first copy of said structured
data component for a process that would make changes to said structured data during said copying of said structured data to
a synchronization peer, and enabling said process to make changes to said first copy instead of to said structured data and
iv) updating said structured data with said first copy once said structured data component is copied to said synchronization
peer;
determining a first change value associated with the filestream contemporaneously with the snapshotting;
determining based on a change value of the structured data component and the first change value of the filestream whether
the mixed element is to be copied to a second peer computer;
locking the unstructured filestream to prepare it for copying to the second peer computer; wherein the locking is associated
with a second change value of the filestream;
comparing the first change value of the file stream to the second change value of the file stream to determine whether determining
if the unstructured filestream was unchanged changed during the time between when the structured data component was snapshotted
and when the unstructured filestream was locked; and
copying the unstructured filestream to the second peer computer based on condition that the unstructured filestream was unchanged
during the time between when the structured data component was snapshotted and when the unstructured filestream was locked.
|