CA2616103C

Partial item change tracking and synchronization

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.

CA2616103C, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Expired 20 July 2026, 0.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

47 claims: 8 independent, 39 dependent

  1. 1
    CA 02616103 2016-04-14 51028-106 CLAIMS:1. A method of synchronizing electronic mail messages between a first device and a second device, the method comprising: storing an electronic mail message at the first device, the electronic mail message including a plurality of property groups, each of the property groups including one or more properties, at least one of the property groups including multiple properties;monitoring a plurality of data items for sync purposes, the plurality of data items including the electronic mail message;using an item change identifier to determine that the electronic mail message has changed after a last sync;after determining that the electronic mail message has changed after the last sync, determining which property group in the electronic mail message has changed, including using change identifiers for the property groups to identify a changed group in the electronic mail message;and performing a synchronization process that synchronizes the electronic mail message on the first device and the second device, the synchronization process including streaming the changed group from the second device, the electronic mail message being synchronized on the first device and the second device without streaming the entire electronic mail message from the second device to the first device, the changed group being among the property groups of the electronic mail message, one or more properties in the changed group having changed since the last sync.
  2. 11
    A computing device that comprises:one or more computer storage media that store instructions and an electronic mail data item, the electronic mail 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: determine that a property in a particular property group has changed;update a property group change identifier for the particular property group after determining that the property in the property group has changed;use the property group change identifier to identify when changes have occurred to the particular property group;and sync a changed group in the electronic mail data item without streaming the entire electronic mail data item from another computing device, the changed group being among the property groups of the electronic mail 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.
  3. 17
    A computer-storage medium that stores instructions, execution of the instructions by a processing unit of a client configures the client to:locally cache an electronic mail data item at the client, the electronic mail data item comprising a plurality of property groups, each of the property groups mapped to one or 20 more properties of the electronic mail data item, at least one of the property groups mapped to multiple properties of the electronic mail 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 CA 02616103 2016-04-14 51028-106 receive a sync item stream from the server in response to the sync request, the sync item stream including changed property groups in the electronic mail data item but not the entire electronic mail data item, one or more properties mapped to the changed property groups having changed since a last sync between the client and the server, wherein the changed property groups are identified in the plurality of property groups using property group change identifiers.
  4. 19
    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 electronic mail data items that have changed after a last synchronization, each of the one or more electronic mail data items comprising a plurality of modifiable properties, the plurality of modifiable properties in each of the one or more electronic mail 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 electronic mail 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 electronic mail data item;in response to the request to synchronize the one or more electronic mail 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 a first electronic mail data item from among the one or more electronic mail data items, wherein none of the properties in the unmodified property groups have values CA 02616103 2016-04-14 51028-106 changed after the last synchronization, and wherein the modified property group is identified in the plurality of property groups using a property group change identifier.
  5. 25
    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 electronic mail data items that have changed after a last synchronization, each of the one or more electronic mail data items comprising a plurality of modifiable properties, the plurality of modifiable properties in each of the one or more electronic mail 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 electronic mail 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 electronic mail data item;CA 02616103 2016-04-14 51028-106 determining, at the client device, that a first electronic mail data item of the one or more electronic mail data items has changed after the last synchronization;determining, at the client device, whether the plurality of property groups of the first electronic mail 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 wherein the modified property group is identified in the plurality of property groups using a property group change identifier;and synchronizing, by the client device, the modified property group without streaming one or more unmodified property groups in the plurality of property groups of the first electronic mail data item, wherein none of the properties in the unmodified property groups have values changed after the last synchronization.
  6. 29
    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 CA 02616103 2016-04-14 51028-106 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;5 in response to the request to synchronize the one or more data items that have changed after the last synchronization, using an item change identifier associated with a first data item of the one or more data items to determine, at the server device, that the first data item has changed after the last synchronization;10 after determining 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, including using change identifiers for the property groups to identify the modified property group in the first data item, wherein a value of a property in the modified property group has changed after the last synchronization;15 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. 20
  7. 38
    A method for increasing synchronization rates between a client device and a 10 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;15 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: 20 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 CA 02616103 2016-04-14 51028-106 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 5 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. 10
  8. 45
    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, 5 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 10 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 15 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 20 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;CA 02616103 2016-04-14 51028-106 31 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 5 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 10 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.