Adaptable management in sync engines
First Claim
1. 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, andidentifying 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.
1 Assignment
0 Petitions
Accused Products
Abstract
Synchronization of two or more items can be optimized through the use of parallel execution of synchronization tasks and adaptable processing that monitors and adjusts for system loading. Two or more synchronization tasks required to be performed for an item can, if not inherently serial in nature, be performed in parallel, optimizing synchronization of the item. Even if multiple synchronization tasks required for one item must be serially executed, e.g., download the item prior to translating the item, these synchronization tasks can be executed in parallel for different items, optimizing a download request involving two or more items. Moreover, multiple threads for one or more synchronization tasks can be concurrently executed when supportable by the current operating system resources. Rules can be established to ensure synchronization activity is not degraded by the overextension of system resources.
15 Citations
20 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An adaptable synchronization system for syncing at least one sync item between a first computing device and a second computing device, the adaptable synchronization system comprising:
-
an engine manager executing on the first computing device comprising determining at least one pre-sync task from a set of pre-sync tasks comprising at least two different pre-sync tasks that is to be performed for at least one sync item prior to a sync task being performed for the sync item, wherein the sync task comprises a synchronization activity comprising the physical transfer of a sync item between a first computing device and a second computing device, and wherein a pre-sync task comprises an activity to be performed for a sync item prior to the execution of the physical transfer of the sync item from the first computing device to the second computing device; 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 executing a unique pre-sync task from a set of pre-sync tasks for a sync item prior to the sync task being executed for the sync item that comprises the physical transfer of the sync item from the first computing device to the second computing device; and a sync task runner executed by at least one processor running on a computing device comprising executing the sync task comprising a synchronization activity comprising the physical transfer of a sync item between the first computing device and the second computing device wherein the synchronization activity comprises establishing communication between the first computing device and a second computing device to support the synchronization of the sync item, and wherein the sync task runner comprises executing the sync task on a first sync item concurrently with a pre-sync task runner executing a pre-sync task on a second sync item.
-
Specification