Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system
First Claim
1. A method for synchronizing a plurality of instances for a data platform, said method comprising:
- storing a plurality of items in a first instance of a data platform, each item stored in the first instance includes at least one change unit, wherein the data platform is configured to track changes to change units;
storing, by the first instance of the data platform, a change to a first change unit of a first item, wherein the first item is a child of a parent item and the first item and the parent item are included in the plurality of items;
storing, by the first instance of the data platform after the change to the first change unit of the first item, a change to a parent change unit of the parent item;
uniquely enumerating, by the first instance of the data platform, changes to change units in sequential order, wherein each change unit is identified by a change number;
maintaining, by the first instance of the data platform, a separate vector, wherein the separate vector corresponds to the enumerated change units in sequential order, and a most recent known change number of a second instance of the data platform, wherein the separate vector represents all changes that have been made to the first instance of the data platform;
receiving, by the first instance of the data platform from the second instance of the data platform, a synchronization request, wherein the synchronization request includes a second vector associated with the second instances of the data platform;
determining, by the first instance of the data platform, that the second instance of the data platform does not include the change to the first change unit of the first item and the change to the parent change unit of the parent item in accordance with the second vector; and
transmitting, by the first instance of the data platform, the change to the parent change unit of the parent item prior to transmitting the change to the first change unit of the first item.
4 Assignments
0 Petitions
Accused Products
Abstract
Several embodiments of the present invention comprise a storage platform that provides a synchronization service that (i) allows multiple instances of the storage platform (each with its own data store) to synchronize parts of their content according to a flexible set of rules, and (ii) provides an infrastructure for third parties to synchronize the data store of the storage platform of the present invention with with other data sources that implement proprietary protocols. However, it is possible that a conflict might arise in a number of synchronization scenarios. For example, A1 and B2 may have been changes made to the same change unit, or A1 might be a deletion to the same change unit that B2 was modifying. While some of these conflicts can be resolved using the conflict resolution options discussed earlier herein, certain conflicts provide particularly difficult challenges, and these challenges and their solutions are discussed herein.
-
Citations
18 Claims
-
1. A method for synchronizing a plurality of instances for a data platform, said method comprising:
-
storing a plurality of items in a first instance of a data platform, each item stored in the first instance includes at least one change unit, wherein the data platform is configured to track changes to change units; storing, by the first instance of the data platform, a change to a first change unit of a first item, wherein the first item is a child of a parent item and the first item and the parent item are included in the plurality of items; storing, by the first instance of the data platform after the change to the first change unit of the first item, a change to a parent change unit of the parent item; uniquely enumerating, by the first instance of the data platform, changes to change units in sequential order, wherein each change unit is identified by a change number; maintaining, by the first instance of the data platform, a separate vector, wherein the separate vector corresponds to the enumerated change units in sequential order, and a most recent known change number of a second instance of the data platform, wherein the separate vector represents all changes that have been made to the first instance of the data platform; receiving, by the first instance of the data platform from the second instance of the data platform, a synchronization request, wherein the synchronization request includes a second vector associated with the second instances of the data platform; determining, by the first instance of the data platform, that the second instance of the data platform does not include the change to the first change unit of the first item and the change to the parent change unit of the parent item in accordance with the second vector; and transmitting, by the first instance of the data platform, the change to the parent change unit of the parent item prior to transmitting the change to the first change unit of the first item. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium comprising computer-readable instructions for synchronizing a plurality of instances for a data platform, said computer-readable instructions comprising instruction for:
-
storing a plurality of items in a first instance of a data platform, each item stored in the first instance includes at least one change unit, wherein the data platform is configured to track changes to change units; storing, by the first instance of the data platform, a change to a first change unit of a first item, wherein the first item is a child of a parent item and the first item and the parent item are included in the plurality of items; storing, by the first instance of the data platform after the change to the first change unit of the first item, a change to a parent change unit of the parent item; uniquely enumerating, by the first instance of the data platform, changes to change units in sequential order wherein each change unit is identified by a change number; maintaining, by the first instance of the data platform, a separate vector, wherein the separate vector corresponds to the enumerated change units in sequential order, and a most recent known change number of a second instance of the data platform, wherein the separate vector represents all changes that have been made to the first instance of the data platform; receiving, by the first instance of the data platform from the second instance of the data platform, a synchronization request, wherein the synchronization request includes a second vector associated with the second instances of the data platform; determining, by the first instance of the data platform, that the second instance of the data platform does not include the change to the first change unit of the first item and the change to the parent change unit of the parent item in accordance with the second vector; and transmitting, by the first instance of the data platform, the change to the parent change unit of the parent item prior to transmitting the change to the first change unit of the first item. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification