Patent ID: 8527461

Claim:
A computer-implemented method, comprising: at a first replication site of a plurality of replication sites: storing a data object in computer memory, the data object having at least one access controlled data object data unit; storing in computer memory a first version vector for the access controlled data object data unit; receiving a data object change update for the data object from a second replication site of the plurality of replication sites; storing the data object change update in computer memory, the data object change update having at least one data object data unit update and a second version vector for the data object data unit update; determining, based at least in part on the first version vector and the second version vector, that the data object data unit update conflicts with the access controlled data object data unit; in response to determining that the data object data unit update conflicts with the access controlled data object data unit, applying the data object change update to the data object only after the conflict has been deconflicted; wherein applying the data object change update to the data object only after the conflict has been deconflicted includes: obtaining results of a deconfliction between the data object data unit update and the access controlled data object data unit; applying the results of the deconfliction to the access controlled data object data unit to produce a new version of the access controlled data object data unit; merging the first version vector and the second version vector to produce a merged version vector; incrementing a logical clock value in the merged version vector to produce a merged and incremented version vector, the logical clock value corresponding to the first replication site; and associating the merged and incremented version vector with the new version of the access controlled data object data unit; wherein the method is performed by one or more computing devices.