US 11,907,192 B1
Systems and methods for artifact peering within a multi-master collaborative environment
Allen Chang, Sunnyvale, CA (US); John Carrino, Redwood City, CA (US); David Xiao, San Francisco, CA (US); and Timothy Wilson, Palo Alto, CA (US)
Assigned to Palantir Technologies Inc., Denver, CO (US)
Filed by Palantir Technologies Inc., Denver, CO (US)
Filed on Nov. 29, 2022, as Appl. No. 18/070,909.
Application 18/070,909 is a continuation of application No. 16/869,451, filed on May 7, 2020, granted, now 11,556,512.
Claims priority of provisional application 62/929,718, filed on Nov. 1, 2019.
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/22 (2019.01); G06F 16/182 (2019.01); G06F 16/23 (2019.01); G06F 16/17 (2019.01); G06F 1/04 (2006.01)
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
OG exemplary drawing
 
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.