US 12,074,942 B2
Fault-tolerant and highly available configuration of distributed services
Greg DeArment, Seattle, WA (US); Mark Elliot, New York, NY (US); Jonathan Yu, Palo Alto, CA (US); Jon Paek, Sunnyvale, CA (US); Phillip Chen, New York, NY (US); Brian Toth, Palo Alto, CA (US); David Tolnay, Menlo Park, CA (US); Daniel Rothfus, Fort Worth, TX (US); and Bradley Moylan, Palo Alto, CA (US)
Assigned to Palantir Technologies Inc., Denver, CO (US)
Filed by Palantir Technologies Inc., Denver, CO (US)
Filed on May 31, 2023, as Appl. No. 18/326,930.
Application 18/326,930 is a continuation of application No. 17/222,175, filed on Apr. 5, 2021, granted, now 11,706,296.
Application 17/222,175 is a continuation of application No. 16/528,625, filed on Aug. 1, 2019, granted, now 10,990,446, issued on Apr. 27, 2021.
Application 16/528,625 is a continuation of application No. 15/284,959, filed on Oct. 4, 2016, granted, now 10,430,240, issued on Oct. 1, 2019.
Claims priority of provisional application 62/355,504, filed on Jun. 28, 2016.
Claims priority of provisional application 62/241,024, filed on Oct. 13, 2015.
Prior Publication US 2023/0308508 A1, Sep. 28, 2023
Int. Cl. H04L 67/1095 (2022.01); G06F 9/44 (2018.01); G06F 9/445 (2018.01); G06F 9/455 (2018.01); G06F 9/46 (2006.01); G06F 9/48 (2006.01); G06F 9/50 (2006.01); G06F 11/07 (2006.01); G06F 11/14 (2006.01); G06F 8/71 (2018.01); H04L 41/5054 (2022.01)
CPC H04L 67/1095 (2013.01) [G06F 9/44 (2013.01); G06F 9/44505 (2013.01); G06F 9/45533 (2013.01); G06F 9/465 (2013.01); G06F 9/48 (2013.01); G06F 9/4806 (2013.01); G06F 9/4843 (2013.01); G06F 9/4881 (2013.01); G06F 9/50 (2013.01); G06F 9/5005 (2013.01); G06F 11/07 (2013.01); G06F 11/0709 (2013.01); G06F 11/14 (2013.01); G06F 8/71 (2013.01); H04L 41/5054 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A computer-implemented method of distributed task orchestration, comprising:
detecting, by a processor of a first host of one or more hosts in a distributed computing environment, a distributed task waiting to be started, from a replicated configuration system,
the distributed task being represented by a pending tasks key in the replicated configuration system;
starting, by the processor, the distributed task by performing an atomic compare and swap operation to add a started key to the replicated configuration system for the distributed task;
writing, after the starting, a specification of the distributed task to the replicated configuration system under a new version of a current tasks key,
the specification indicating one or more steps of the distributed task,
the specification further indicating each step of the one or more steps to be executed by at least one host of the one or more hosts;
removing, following the writing, the pending tasks key from the replicated configuration system.