Partial item change tracking and synchronization
First Claim
1. A method of increasing sync rates between a client device and a server device, the method comprising acts of:
- receiving, at the server device, a request from the client device to synchronize one or more data items that have changed after a last synchronization between the server device and the client device, wherein each of the one or more data items represents a complete message, each of the one or more data items comprising a plurality of modifiable properties, the plurality of modifiable properties in each of the one or more data items divided into a plurality of property groups that includes at least a read property group and a follow-up flag property group, the read property group including a property that indicates whether the data item has been read, the follow-up flag property group including a property that indicates whether a follow-up flag has been set on the data item, at least one of the property groups containing two or more of the modifiable properties;
in response to the request to synchronize the one or more data items that have changed after the last synchronization,determining, at the server device, that a first data item of the one or more data items has changed after the last synchronization;
determining, at the server device, whether the plurality of property groups of the first data item includes a modified property group, wherein a value of a property in the modified property group has changed after the last synchronization; and
synchronizing, by the server device, the modified property group with the client device without streaming to the client device one or more unmodified property groups in the plurality of property groups of the first data item, wherein none of the properties in the unmodified property groups have values changed after the last synchronization.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments herein change the way item syncing is handled and tracked between two devices. Changes to items are tracked in accordance with well defined property groups and each group is tracked independently of the other. For example, one group could contain large data items, e.g., attachments, while another group could include highly volatile properties like a follow-up flag. The present invention increases the sync rates between a client and a server by syncing only select portions of an item that have changed, without monitoring the change of each individual property within the item. Accordingly, if a change is made to a small data property (e.g., follow-up flag) on a relatively large email message, such change will not trigger a large download to a client running under a cached mode, nor will there be a requirement for high storage and processing for tracking each individual property.
17 Citations
19 Claims
-
1. A method of increasing sync rates between a client device and a server device, the method comprising acts of:
-
receiving, at the server device, a request from the client device to synchronize one or more data items that have changed after a last synchronization between the server device and the client device, wherein each of the one or more data items represents a complete message, each of the one or more data items comprising a plurality of modifiable properties, the plurality of modifiable properties in each of the one or more data items divided into a plurality of property groups that includes at least a read property group and a follow-up flag property group, the read property group including a property that indicates whether the data item has been read, the follow-up flag property group including a property that indicates whether a follow-up flag has been set on the data item, at least one of the property groups containing two or more of the modifiable properties; in response to the request to synchronize the one or more data items that have changed after the last synchronization, determining, at the server device, that a first data item of the one or more data items has changed after the last synchronization; determining, at the server device, whether the plurality of property groups of the first data item includes a modified property group, wherein a value of a property in the modified property group has changed after the last synchronization; and synchronizing, by the server device, the modified property group with the client device without streaming to the client device one or more unmodified property groups in the plurality of property groups of the first data item, wherein none of the properties in the unmodified property groups have values changed after the last synchronization. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for increasing synchronization rates between a client device and a server device, the method comprising acts of:
-
monitoring, at the server device, a plurality of data items for synchronization purposes, each data item in the plurality of data items comprising a plurality of modifiable properties, the plurality of modifiable properties in each data item in the plurality of data items divided into a plurality of predefined property groups; determining, at the server device, whether a first data item in the plurality of data items has changed after a last synchronization between the server device and the client device; when it is determined that the first data item has changed after the last synchronization; updating, at the server device, an item change identifier associated with the first data item to indicate that the first data item has changed after the last synchronization; determining, at the server device, whether the plurality of property groups of the first data item includes a modified property group, wherein a value of a property in the modified property group has changed after the last synchronization; and when the server device determines that the first data item includes a modified property group, updating, at the server device, a property group change identifier associated with the modified property group to indicate that the modified property group has changed after the last synchronization; and synchronizing, by the server device, the modified property group with the client device without synchronizing one or more unmodified property groups in the plurality of property groups of the first data item, wherein none of the properties in the unmodified property groups have values changed after the last synchronization. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. One or more computer-storage media, the computer-storage media not consisting of transitory signals, the computer-storage media having stored thereon:
-
a plurality of data items, wherein the data items are chosen from;
email messages, contact messages, appointment messages, task messages, and sticky notes messages,wherein each of the data items is a data structure comprising; a plurality of properties, each property in the plurality of properties having a value that is capable of being modified; an item change identifier indicating whether the value of any property in the plurality of properties has been modified after a last synchronization with a client device; a plurality of property groups, each property group in the plurality of property groups including one or more properties from the plurality of properties, wherein the plurality of property groups are predetermined based on semantics for how the one or more properties within each of the plurality of property groups relate; and a plurality of property group change identifiers, each property group change identifier in the plurality of property group change identifiers indicating whether a value in a property group in the plurality of property groups has changed after the last synchronization with the client device; and computer-executable instructions that, when executed by a processor of a server device, cause the server device to; receive a request from the client device to synchronize one or more data items that have changed after the last synchronization between the server device and the client device; in response to the request to synchronize the one or more data items that have changed after the last synchronization; use the item change identifier of a given data item in the plurality of data items to determine whether a value of a property in the plurality of properties of the given data item has changed after the last synchronization; use the property group change identifiers of the given data item to determine whether the plurality of property groups of the given data item includes a modified property group, wherein a value of one of the properties in the modified property group has changed after the last synchronization; and synchronize the modified property group with the client device without streaming to the client device one or more unmodified property groups in the plurality of property groups of the given data item, wherein none of the properties in the unmodified property groups have values changed after the last synchronization. - View Dependent Claims (18, 19)
-
Specification