CPC G06F 16/2237 (2019.01) [G06F 1/04 (2013.01); G06F 16/1734 (2019.01); G06F 16/182 (2019.01); G06F 16/2322 (2019.01)] | 14 Claims |
1. A system for artifact peering, comprising:
a first node storing a local log and a shadow log, wherein the local log stores a set of operations to be applied to an artifact, and the shadow log stores operations proposed from one or more different nodes, each branch of the shadow log storing operations from a particular client or a particular node;
wherein the first node comprises one or more processors and a memory storing instructions that, when executed by the one or more processors, cause the processors to:
maintain a local vector clock associated with the first node and a copy of a vector clock associated with a second node communicatively coupled to the first node;
receive a local proposed operation from the first node;
receive a remote proposed operation to the artifact from the second node;
determine a concurrency between the local proposed operation and the remote proposed operation;
add the local proposed operation to the local log;
add the remote proposed operation to a branch of the shadow log to represent the concurrency;
perform the local proposed operation;
perform a transformed version of the remote proposed operation in response to performing the local proposed operation; and
append the transformed version of the remote proposed operation to the local log following the local proposed operation.
|