IP Library Granted Patent US 11,706,296
Granted Patent B2
US 11,706,296 · App. 17/222,175 · Granted Jul 18, 2023

Fault-tolerant and highly available configuration of distributed services

Inventors: Greg DeArment (Seattle, WA); Mark Elliot (New York, NY); Jonathon Yu (Palo Alto, CA); Jon Paek (Sunnyvale, CA); Phillip Chen (New York, NY); Brian Toth (Palo Alto, CA); David Tolnay (Menlo Park, CA); Daniel Rothfus (Fort Worth, TX); Bradley Moylan (Palo Alto, CA)
Assignee: Palantir Technologies Inc.
H04L67/1095G06F9/44G06F9/44505G06F9/465G06F9/48G06F9/4806G06F9/4843G06F9/50G06F9/5005G06F11/07G06F11/0709G06F11/14G06F8/71H04L41/5054
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,706,296
App. No.
17/222,175
Granted
Jul 18, 2023
Kind
B2
Abstract

Fault-tolerant and highly available configuration of distributed services including a computer-implemented method for role-based configuration discovery comprising receiving a request comprising an identifier of a role; identifying a first key, in a replica of a distributed configuration store, comprising a first value that matches the role identifier; identifying one or more other key-value pairs associated in the replica with the first key; and returning a response to an entity that sent the request comprising the value of at least one key-value pair that is specific to the role the service has. Also disclosed are techniques for log forwarding.

Claims (47)

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.

2. The method of claim 1 , wherein the one or more services to watch is determined based on an identifier of the first host.

3. The method of claim 1 , wherein the one or more services to watch is determined by enumerating one or more child keys of a predefined key that includes an identifier of the first host in a key name associated with the predefined key.

4. The method of claim 1 , wherein the watch comprises at least one of: a forward watch, a historical and forward watch, or a non-recursive watch.

5. The method of claim 1 , wherein the corrective action taken to modify the particular service by the first host is based on the updated target state of the particular service.

6. The method of claim 1 , further comprising:

in response to determining that the current state of the particular service at the first host is not inconsistent with the updated target state for the particular service, continuing to watch the one or more services to watch.

7. One or more non-transitory computer-readable media storing one or more programs for execution by one or more processors, the one or more programs comprising instructions for:

obtaining, at a first host, service-host binding information from a replica of a distributed configuration store;

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 one or more hosts in a distributed computing environment;

setting a watch on the one or more services to 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 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 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 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 target state of the particular service.

8. The one or more non-transitory computer-readable media of claim 7 , wherein the one or more services to watch is determined based on an identifier of the first host.

9. The one or more non-transitory computer-readable media of claim 7 , wherein the one or more services to watch is determined by enumerating one or more child keys of a predefined key that includes an identifier of the first host in a key name associated with the predefined key.

10. The one or more non-transitory computer-readable media of claim 7 , wherein the watch comprises at least one of: a forward watch, a historical and forward watch, or a non-recursive watch.

11. The one or more non-transitory computer-readable media of claim 7 , wherein the corrective action taken to modify the particular service by the first host is based on the updated target state of the particular service.

12. The one or more non-transitory computer-readable media of claim 7 , further comprising instructions which, when executed by the one or more processors, cause:

in response to determining that the current state of the particular service at the first host is not inconsistent with the updated target state for the particular service, continuing to watch the one or more services to watch.

13. A system, comprising:

one or more processors;

one or more storage media storing one or more programs for execution by the one or more processors, the one or more programs comprising instructions for:

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.

14. The system of claim 13 , wherein the one or more services to watch is determined based on an identifier of the first host.

15. The system of claim 13 , wherein the one or more services to watch is determined by enumerating one or more child keys of a predefined key that includes an identifier of the first host in a key name associated with the predefined key.

16. The system of claim 13 , wherein the watch comprises at least one of: a forward watch, a historical and forward watch, or a non-recursive watch.

17. The system of claim 13 , wherein the corrective action taken to modify the particular service by the first host is based on the updated target state of the particular service.

18. The system of claim 13 , further comprising instructions which, when executed by the one or more processors, cause:

in response to determining that the current state of the particular service at the first host is not inconsistent with the updated target state for the particular service, continuing to watch the one or more services to watch.

Assignments (2)
CHANGE OF ADDRESS Recorded Nov 9, 2022
From: PALANTIR TECHNOLOGIES INC.
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 062320/0846 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
Continuity (5)
Continuation 16528625 · Aug 1, 2019
Continuation 15284959 · Oct 4, 2016
Provisional Application 62355504 · Jun 28, 2016
Provisional Application 62241024 · Oct 13, 2015
Related Publication 20210224118A1 · Jul 22, 2021
Cited By (1)
US 12,639,288