Patent ID: 8635186

Claim:
A hardware storage device having stored computer-executable instructions which, are executable by at least one hardware processor of a computing system having a non-volatile file system and memory for implementing the following: downloading a batch of changes in a heterogeneous batch, wherein the batch of changes is correlated to an anchor affiliated with a synchronization service, wherein the anchor, which is received from the synchronization service, is a reference point indicating time or relative order; serializing the batch of changes and the anchor to a non-volatile storage medium as a heterogeneous set, such that the batch of changes, which includes a plurality of changes to a plurality of different entity types is stored as a single file in the non-volatile file system; after serializing the batch of changes to a non-volatile storage medium as a heterogeneous set, parsing out entities in the batch of changes into a plurality of different homogeneous collections of entities by entity type, such that different entity types are grouped together into different collections; storing the different entity types as separate collections as in-memory representations, such that the different entities in the batch of changes that are received from the synchronization service are maintained as in-memory representations that are separated by entity type as well as within a file in the file system that is associated with the anchor and that includes a grouping of heterogeneous entity changes; detecting modification to a plurality of data entities and storing on the non-volatile storage medium a serialized heterogeneous representation of the modified data entities in a local change file that excludes the anchor; uploading the serialized heterogeneous representation included in the local change file to the synchronization service; and receiving an upload response from the synchronization service, wherein the upload response comprises a corresponding new anchor.