US 11,706,296 B2
Fault-tolerant and highly available configuration of distributed services
Greg DeArment, Seattle, WA (US); Mark Elliot, New York, NY (US); Jonathon 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., Palo Alto, CA (US)
Filed on Apr. 5, 2021, as Appl. No. 17/222,175.
Application 17/222,175 is a continuation of application No. 16/528,625, filed on Aug. 1, 2019, granted, now 10,990,446.
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 2021/0224118 A1, Jul. 22, 2021
Int. Cl. H04L 67/1095 (2022.01); G06F 9/44 (2018.01); G06F 9/46 (2006.01); G06F 9/48 (2006.01); G06F 9/445 (2018.01); G06F 11/07 (2006.01); G06F 11/14 (2006.01); G06F 9/50 (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/465 (2013.01); G06F 9/48 (2013.01); G06F 9/4806 (2013.01); G06F 9/4843 (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 method for service lifecycle management, the method comprising:
obtaining, at a first host of one or more hosts in a distributed computing environment, service-host binding information from a replica of a distributed configuration store, wherein the replica of the distributed configuration store represents a local copy of the service-host binding information;
determining, at the first host, one or more services to watch based on the service-host binding information, a service of the one or more services being a single instance of a software product or software application installed on at least the first host or one of the one or more hosts in a distributed computing environment;
setting a watch on the one or more services to watch;
based on the watch, receiving a notification that a target state of a particular service of the one or more services to watch is modified, comprising updating target state information in the replica of the distributed configuration store using a consensus protocol that allows hosts to agree on an ordering for changes in the distributed configuration store;
wherein the updated target state of the particular service represents a desired operational state for the particular service;
determining, at the first host, a current state of the particular service of the one or more services to watch, wherein the current state represents an operational state for the particular service, and wherein the particular service is hosted at the first host;
determining whether the current state of the particular service is inconsistent with the updated target state of the particular service of the one or more services to watch;
in response to determining that the current state of the particular service is inconsistent with the updated target state of the particular service, the first host taking a corrective action to modify the particular service, which causes the current state of the particular service to be consistent with the updated target state of the particular service.