Cross-ACL multi-master replication
First Claim
Patent Images
1. A method comprising:
- at one or more computing device comprising one or more processors and memory storing one or more programs executed by the one or more processors to perform the method, performing operations comprising;
receiving a first update to a data object;
updating the data object in a first database based on the first update;
receiving a second update to the data object;
responsive to receiving the second update, detecting a concurrency conflict between a first value for a first property of the data object in the first database and a second value for the first property in the second update;
updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted;
wherein the second update comprises one or more values for one or more other properties of the data object; and
wherein the operation of updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted comprises the operation of updating the data object in the first database based on the one or more values for the one or more other properties of the data object only after the concurrency conflict is deconflicted.
7 Assignments
0 Petitions
Accused Products
Abstract
Techniques for cross-ACL multi-master replication are provided. The techniques allow a replication site in a multi-master replication system implementing an asynchronous replication protocol and an access control policy to appropriately apply received data change updates to data maintained at the site even where a data change update is missing information because of the implemented access control policy.
-
Citations
18 Claims
-
1. A method comprising:
-
at one or more computing device comprising one or more processors and memory storing one or more programs executed by the one or more processors to perform the method, performing operations comprising; receiving a first update to a data object; updating the data object in a first database based on the first update; receiving a second update to the data object; responsive to receiving the second update, detecting a concurrency conflict between a first value for a first property of the data object in the first database and a second value for the first property in the second update; updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted; wherein the second update comprises one or more values for one or more other properties of the data object; and wherein the operation of updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted comprises the operation of updating the data object in the first database based on the one or more values for the one or more other properties of the data object only after the concurrency conflict is deconflicted. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
-
receiving a first update to a data object; updating the data object in a first database based on the first update; receiving a second update to the data object; responsive to receiving the second update, detecting a concurrency conflict between a first value for a first property of the data object in the first database and a second value for the first property in the second update; updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted; wherein the second update comprises one or more values for one or more other properties of the data object; and wherein the operation of updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted comprises the operation of updating the data object in the first database based on the one or more values for the one or more other properties of the data object only after the concurrency conflict is deconflicted. - View Dependent Claims (8, 9, 10, 11)
-
-
12. One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
-
receiving a first update to a data object; updating the data object in a first database based on the first update; receiving a second update to the data object; responsive to receiving the second update, detecting a concurrency conflict between a first value for a first property of the data object in the first database and a second value for the first property in the second update; updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted; wherein the first update comprises a plurality of values for a first set of a plurality of properties of the data object; wherein the second update comprises a plurality of values for a second set of a plurality of properties of the data object;
wherein the first set of properties comprises a property that is not in the second set of properties; and
wherein the second set of properties comprises a property that is not in the first set of properties.
-
-
13. A system comprising:
-
one or more processors; one or more storage media storing one or more computer programs for execution by the one or more processors, the one or more computer programs comprising instructions for configured for; receiving a first update to a data object; updating the data object in a first database based on the first update; receiving a second update to the data object; responsive to receiving the second update, detecting a concurrency conflict between a first value for a first property of the data object in the first database and a second value for the first property in the second update; updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted; wherein the second update comprises one or more values for one or more other properties of the data object; and wherein the instructions configured for updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted comprise instructions configured for updating the data object in the first database based on the one or more values for the one or more other properties of the data object only after the concurrency conflict is deconflicted. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A system comprising:
-
one or more processors; one or more storage media storing one or more computer programs for execution by the one or more processors, the one or more computer programs comprising instructions for configured for; receiving a first update to a data object; updating the data object in a first database based on the first update; receiving a second update to the data object; responsive to receiving the second update, detecting a concurrency conflict between a first value for a first property of the data object in the first database and a second value for the first property in the second update; updating the data object in the first database based on the second update only after the concurrency conflict is deconflicted; wherein the first update comprises a plurality of values for a first set of a plurality of properties of the data object; wherein the second update comprises a plurality of values for a second set of a plurality of properties of the data object;
wherein the first set of properties comprises a property that is not in the second set of properties; and
wherein the second set of properties comprises a property that is not in the first set of properties.
-
Specification