Patent ID: 8621109

Claim:
A sync system for managing concurrent syncing the sync system comprising: a set of sync items for syncing between a first computing device and at least one second computing device, wherein the set of sync items comprises at least two sync items, and wherein syncing a sync item between a first computing device and a second computing device comprises the execution of a sync task comprising a synchronization activity comprising the physical transfer of a sync item from one computing device to at least a second computing device and can further comprise the execution of at least one pre-sync task from a set of pre-sync tasks comprising at least two pre-sync tasks for the sync item prior to the execution of the synchronization activity for the sync item; a manager executing on the first computing device comprising managing the concurrent syncing of a set of at least two sync items from the first computing device, wherein the manager comprises determining at least one pre-sync task from the set of pre-sync tasks that is to be performed for a first sync item of the set of at least two sync items, determining whether any pre-sync task from the set of pre-sync tasks is to be performed for a second sync item of the set of at least two sync items that has been requested to be synced while the manager is managing the syncing of the first sync item, and identifying at least one pre-sync task from the set of pre-sync tasks that is to be performed for the second sync item of the set of at least two sync items when it is determined that a pre-sync task is to be performed for the second sync item; at least two pre-sync task runners executed by at least one processor running on a computing device, wherein each pre-sync task runner comprises execute executing a pre-sync task from the set of pre-sync tasks for a sync item prior to the execution of the sync task for the sync item that comprises the physical transfer of the sync item from the first computing device to at least a second computing device, wherein a first pre-sync task runner comprises executing a pre-sync task on the first sync item concurrently with a second pre-sync task runner executing a second pre-sync task on the second sync item; and a sync task runner executed by at least one processor running on a computing device comprising executing the sync task for a sync item comprising a synchronization activity comprising the physical transfer of the sync item between the first computing device and at least a second computing device, the sync task runner further comprising executing the sync task for the second sync item concurrently with a pre-sync task runner executing a pre-sync task for the first sync item.