Architecture for partition computation and propagation of changes in data replication
First Claim
1. A system embodied on a computer readable storage medium that facilitates synchronization in a client/server environment using a plurality of destination replicas at a plurality of clients, comprising:
- a receiver component that receives information relating to a partition update in data from a first destination replica at a first client to a source replica, wherein the partition update represents all rows of a partition of the first replica that have been modified since the last synchronization of the first destination replica, the receiver component assigns a generation identifier to all of the rows of the partition update, wherein the value of the generation identifier is the same for all rows of the partition update, wherein a partition is a subset of rows of replica data;
a determination component that propagates the partition update and determines a priori to synchronization by other clients which of the other clients'"'"' destination replicas will be affected by the partition update, wherein the determination component employs a set based query on server tables to make the determination, wherein the server tables comprise a partition metadata table, a current changes metadata table, and a past changes metadata table, wherein the partition metadata table identifies each partition that is relevant to each destination replica, the current changes metadata table identifies each row that is currently part of each partition, the past changes metadata table identifies each row that was previously part of each partition; and
an update component that where upon synchronization by the clients, each client determined to be affected by the partition change is updated with all generations of changes that have not propagated to the client to facilitate partition consistency across the plurality of clients, the update component employs a generation partition mapping table that identifies each generation identifier that is relevant to each partition and a generation metadata table the identifies each generation that has been propagated to each client to identify the changes that have not propagated to each client.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides for facilitating synchronization in a data source/data destination environment using data replicas. When a plurality of destinations request synchronization with a source, a first destination selected for synchronization is processed such that differences between the first destination data and source data is determined and persisted in a partition update. After updating the first destination, the synchronization process continues only for those remaining destinations that will be affected by the partition change, as determined by the persisted data, and then as updated by the persisted data.
-
Citations
45 Claims
-
1. A system embodied on a computer readable storage medium that facilitates synchronization in a client/server environment using a plurality of destination replicas at a plurality of clients, comprising:
-
a receiver component that receives information relating to a partition update in data from a first destination replica at a first client to a source replica, wherein the partition update represents all rows of a partition of the first replica that have been modified since the last synchronization of the first destination replica, the receiver component assigns a generation identifier to all of the rows of the partition update, wherein the value of the generation identifier is the same for all rows of the partition update, wherein a partition is a subset of rows of replica data; a determination component that propagates the partition update and determines a priori to synchronization by other clients which of the other clients'"'"' destination replicas will be affected by the partition update, wherein the determination component employs a set based query on server tables to make the determination, wherein the server tables comprise a partition metadata table, a current changes metadata table, and a past changes metadata table, wherein the partition metadata table identifies each partition that is relevant to each destination replica, the current changes metadata table identifies each row that is currently part of each partition, the past changes metadata table identifies each row that was previously part of each partition; and an update component that where upon synchronization by the clients, each client determined to be affected by the partition change is updated with all generations of changes that have not propagated to the client to facilitate partition consistency across the plurality of clients, the update component employs a generation partition mapping table that identifies each generation identifier that is relevant to each partition and a generation metadata table the identifies each generation that has been propagated to each client to identify the changes that have not propagated to each client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of facilitating synchronization in a client/server environment using a plurality of destination replicas at a plurality of clients, comprising:
-
receiving information relating to a partition update in data from a first destination replica, wherein the partition update represents all rows of a partition of the first replica that have been modified since the last synchronization of the first destination replica, wherein a partition is a subset of rows of replica data; assigning a generation identifier to all of the rows of the partition update, wherein the value of the generation identifier is the same for all rows of the partition update; determining a priori to synchronization by other clients'"'"' destination replicas, which other clients will be affected by the partition update, wherein the determining employs a set based query on server tables to make a determination, wherein the server tables comprise a partition metadata table, a current changes metadata table, and a past changes metadata table, wherein the partition metadata table identifies each partition that is relevant to each destination replica, the current changes metadata table identifies each row that is currently part of each partition, the past changes metadata table identifies each row that was previously part of each partition; upon synchronization by the clients, employing a generation partition mapping table that identifies each generation identifier that is relevant to each partition and a generation metadata table the identifies each generation that has been propagated to each client to identify generation of changes that have not propagated to each client; and updating the clients determined to be affected by the partition change with all generations of changes that have not propagated to each client to facilitate partition consistency across the plurality of clients. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A system embodied on a computer readable storage medium that facilitates synchronization in a client/server environment using replicas, comprising:
-
means for receiving information relating to a partition update in data from a first replica at a first client, wherein the partition update represents all rows of the first replica that have been modified since the last synchronization of the first replica; means for assigning a generation identifier to all of the rows of the partition update, wherein the value of the generation identifier is the same for all rows of the partition update, wherein a partition is a subset of rows of replica data; means for determining a priori to synchronization by other clients, which other clients'"'"' replicas will be affected by the partition update, wherein the determining employs a set based query on server tables to make the determination, wherein the server tables comprise a partition metadata table, a current changes metadata table, and a past changes metadata table, wherein the partition metadata table identifies each partition that is relevant to each destination replica, the current changes metadata table identifies each row that is currently part of each partition, the past changes metadata table identifies each row that was previously part of each partition; upon synchronization by the clients, means employing a generation partition mapping table that identifies each generation identifier that is relevant to each partition and a generation metadata table the identifies each generation that has been propagated to each client to identify generations of changes that have not propagated to each client; and means for updating the clients determined to be affected by the partition change with all generations of changes that have not propagated to each client to facilitate partition consistency across the plurality of clients.
-
-
43. A method of facilitating synchronization in a client/server environment using replicas, comprising:
-
receiving information relating to a partition update in data from a first replica, the received information in the form of replication metadata that is membership information of all changed rows of the first replica since the last synchronization of the first replica persisted for synchronization with the other clients, the replication metadata including a generation identifier to all of the changes rows of the partition update, wherein the value of the generation identifier is the same for all rows of the partition update, wherein a partition identifies a subset of replica data; determining a priori to synchronization by other clients, which other clients will be affected by the partition update, wherein the determining employs a set based query on server tables to make the determination, wherein the server tables comprise a partition metadata table, a current changes metadata table, and a past changes metadata table, wherein the partition metadata table identifies each partition that is relevant to each destination replica, the current changes metadata table identifies each row that is currently part of each partition, the past changes metadata table identifies each row that was previously part of each partition; upon synchronization by the clients, employing a generation partition mapping table that identifies each generation identifier that is relevant to each partition and a generation metadata table the identifies each generation that has been propagated to each client to identify generation of changes that have not propagated to each client; and updating the clients determined to be affected by the partition change with all generations of changes that have not propagated to each client to facilitate partition consistency across the plurality of clients.
-
-
44. A system embodied on a computer readable storage medium that facilitates synchronization of data collections using replicas, comprising:
-
a receiver component for receiving information relating to a partition update in data from a first replica, wherein the partition represents all rows of the first replica that have been modified since the last synchronization of the first replica, the receiver component assigns a generation identifier to all of the rows of the partition update, wherein the value of the generation identifier is the same for all rows of the partition update, wherein a partition identifies a subset of replica data; a determination component determining a priori the synchronization by other destination data collections, which other destination data collections will be affected by the partition change, wherein the determination component employs a set based query on server tables to make the determination, wherein the server tables comprise a partition metadata table, a current changes metadata table, and a past changes metadata table, wherein the partition metadata table identifies each partition that is relevant to each destination replica, the current changes metadata table identifies each row that is currently part of each partition, the past changes metadata table identifies each row that was previously part of each partition; and an update component where upon synchronization by the destination data collections, each destination data collection determined to be affected by the partition change is updated with all generations of changes that have not propagated to the destination data collection to facilitate partition consistency across the plurality of destination data collections, the update component employs generation identifiers and a generation partition mapping table that identifies each generation identifier that is relevant to each partition and a generation metadata table the identifies each generation that has not propagated to each destination data collection. - View Dependent Claims (45)
-
Specification