Partial Item Change Tracking and Synchronization
First Claim
1. A method of synchronizing data items between a first device and a second device, the method comprising:
- storing a data item at the first device, the data item comprising a plurality of property groups, each of the property groups including one or more properties of the data item, at least one of the property groups including multiple properties; and
performing a synchronization process that synchronizes the data item on the first device and a second device, the synchronization process including streaming a changed group to the second device, the data item being synchronized on the first device and the second device without streaming the entire data item from the first device to the second device, the changed group being among the property groups of the data item, one or more properties in the changed group having changed since a last sync.
1 Assignment
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.
-
Citations
30 Claims
-
1. A method of synchronizing data items between a first device and a second device, the method comprising:
-
storing a data item at the first device, the data item comprising a plurality of property groups, each of the property groups including one or more properties of the data item, at least one of the property groups including multiple properties; and performing a synchronization process that synchronizes the data item on the first device and a second device, the synchronization process including streaming a changed group to the second device, the data item being synchronized on the first device and the second device without streaming the entire data item from the first device to the second device, the changed group being among the property groups of the data item, one or more properties in the changed group having changed since a last sync. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computing device that comprises:
-
one or more computer storage media that store instructions and a data item, the data item comprising a plurality of properties, the plurality of properties divided into a plurality of property groups, each of the property groups containing one or more of the properties, at least one of the property groups containing multiple properties; and a processing unit that reads and executes the instructions, execution of the instructions by the processing unit causing the computing device to sync a changed group in the data item without streaming the entire data item from another computing device, the changed group being among the property groups of the data item, one or more properties in the changed group having changed since a last sync between the computing device and the other computing device. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A computer-storage medium that stores instructions, execution of the instructions by a processing unit of a client configures the client to:
-
locally cache a data item at the client, the data item comprising a plurality of property groups, each of the property groups mapped to one or more properties of the data item, at least one of the property groups mapped to multiple properties of the data item, the plurality of property groups including at least a follow-up property group and a read status property group; send a sync request to a server; and receive a sync item stream from the server in response to the sync request, the sync item stream including changed property groups in the data item but not the entire data item, one or more properties mapped to the changed property groups having changed since a last sync between the client and the server. - View Dependent Claims (20)
-
-
21. A method of increasing sync rates for a client device, the method comprising:
-
transmitting a request from the client device to synchronize one or more data items that have changed after a last synchronization, 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; in response to the request to synchronize the one or more data items that have changed after the last synchronization, receiving a modified property group at the client device without receiving 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 (22, 23, 24, 25, 26)
-
-
27. A method of increasing sync rates for a client device, the method comprising:
-
transmitting a request from a client device to synchronize one or more data items that have changed after a last synchronization, 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; determining that a first data item of the one or more data items has changed after the last synchronization; determining 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 the modified property group without streaming 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 (28, 29, 30)
-
Specification