IP Library › Granted Patent US 12,468,727
Granted Patent B2
US 12,468,727 · App. 18/944,953 · Granted Nov 11, 2025

Synchronising datasets updates

Inventor: Jamie Sookprasong (Seattle, WA)
Assignee: Palantir Technologies Inc.
G06F16/27G06F16/2379
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 12,468,727
App. No.
18/944,953
Granted
Nov 11, 2025
Kind
B2
Abstract

An apparatus, computer-implemented method and computer program are disclosed for synchronising dataset updates. For example, the method may comprise providing a first code branch associated with a plurality of code sets which, when executed, produce respective time-series datasets for provision to a downstream process linked to the first code branch. The method may also comprise generating a second code branch, based on the first code branch, the second code branch executing the plurality of code sets as part of an updating process and, if successful, storing respective time-series datasets to respective memory locations associated with the second code branch. Another part of the method may comprise determining if all code sets executed by the second code branch have successfully committed. Responsive to a positive determination, one or more pointers, e.g. all pointers, associated with the first code branch may be updated to point to the respective memory locations associated with the second code branch in order that the respective successfully-committed time-series datasets are provided to the downstream process.

Claims (49)

1 . A computer-implemented method, wherein the method is performed using one or more processors, the method comprising:

providing a first code branch associated with a plurality of code sets which, when executed, produce respective first time-series datasets, stored in a first memory location, for provision to a downstream process linked to the first code branch;

providing an update to a downstream process that the first time-series datasets are stored in the first memory location via a first pointer to the first memory location;

generating a second code branch, based on the first code branch, the second code branch executing the plurality of code sets and, if successfully committed, storing respective second time-series datasets, stored in a second memory location;

determining if all code sets executed by the second code branch have successfully committed;

responsive to a negative determination, regenerating the second code branch based on a different version of the second code branch in a recursive process until the second code branch is successfully generated; and

responsive to a positive determination, providing an update to the downstream process.

2 . The computer-implemented method of claim 1 , wherein the method further comprises:

responsive to a negative determination, deleting the second code branch.

3 . The computer-implemented method of claim 1 , wherein the method further comprises:

detecting an updating event associated with the first code branch; and

generating the second code branch and executing the plurality of code sets responsive to detection of the updating event.

4 . The computer-implemented method of claim 1 , wherein the update to the downstream process indicates that the second time-series datasets are stored in the second memory location via a second pointer to the second memory location.

5 . The computer-implemented method of claim 1 , wherein generating the second code branch comprises replicating the plurality of code sets associated with the first code branch and executing the replicated plurality of code sets as part of the updating process independently of the plurality of code sets associated with the first code branch.

6 . The computer-implemented method of claim 1 , wherein the first code branch is associated with respective memory locations which, by means of the updated one or more pointers, point to the respective memory locations associated with the second code branch.

7 . The computer-implemented method of claim 1 , wherein the plurality of code sets comprise code which, when executed, receives or causes receipt of, in one time-series dataset, data representing component failure reports and, in another time-series dataset, data representing at least a set of entities and constituent components of the entities, the downstream process being configured to identify entities having constituent components that require updating or servicing based on the component failure reports.

8 . A computing system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing system to perform:

providing a first code branch associated with a plurality of code sets which, when executed, produce respective first time-series datasets, stored in a first memory location, for provision to a downstream process linked to the first code branch;

providing an update to a downstream process that the first time-series datasets are stored in the first memory location via a first pointer to the first memory location;

generating a second code branch, based on the first code branch, the second code branch executing the plurality of code sets and, if successfully committed, storing respective second time-series datasets, stored in a second memory location;

determining if all code sets executed by the second code branch have successfully committed;

responsive to a negative determination, regenerating the second code branch based on a different version of the second code branch in a recursive process until the second code branch is successfully generated; and

responsive to a positive determination, providing an update to the downstream process.

9 . The computing system of claim 8 , wherein the instructions further cause the computing system to perform:

responsive to a negative determination, deleting the second code branch.

10 . The computing system of claim 8 , wherein the instructions further cause the computing system to perform:

detecting an updating event associated with the first code branch; and

generating the second code branch and executing the plurality of code sets responsive to detection of the updating event.

11 . The computing system of claim 8 , wherein the update to the downstream process indicates that the second time-series datasets are stored in the second memory location via a second pointer to the second memory location.

12 . The computing system of claim 8 , wherein the generating of the second code branch comprises replicating the plurality of code sets associated with the first code branch and executing the replicated plurality of code sets as part of the updating process independently of the plurality of code sets associated with the first code branch.

13 . The computing system of claim 8 , wherein the first code branch is associated with respective memory locations which, by means of the updated one or more pointers, point to the respective memory locations associated with the second code branch.

14 . The computing system of claim 8 , wherein the plurality of code sets comprise code which, when executed, receives or causes receipt of, in one time-series dataset, data representing component failure reports and, in another time-series dataset, data representing at least a set of entities and constituent components of the entities, the downstream process being configured to identify entities having constituent components that require updating or servicing based on the component failure reports.

15 . A computer program product comprising a non-transitory computer-readable medium readable by a processing circuit, the non-transitory computer-readable medium storing instructions executable by the processing circuit to cause a method to be performed, the method comprising:

providing a first code branch associated with a plurality of code sets which, when executed, produce respective first time-series datasets, stored in a first memory location, for provision to a downstream process linked to the first code branch;

providing an update to a downstream process that the first time-series datasets are stored in the first memory location via a first pointer to the first memory location;

generating a second code branch, based on the first code branch, the second code branch executing the plurality of code sets and, if successfully committed, storing respective second time-series datasets, stored in a second memory location;

determining if all code sets executed by the second code branch have successfully committed;

responsive to a negative determination, regenerating the second code branch based on a different version of the second code branch in a recursive process until the second code branch is successfully generated; and

responsive to a positive determination, providing an update to the downstream process.

16 . The computer program product of claim 15 , wherein the method comprises:

responsive to a negative determination, deleting the second code branch.

17 . The computer program product of claim 15 , wherein the method further comprises:

detecting an updating event associated with the first code branch; and

generating the second code branch and executing the plurality of code sets responsive to detection of the updating event.

18 . The computer program product of claim 15 , wherein the update to the downstream process indicates that the second time-series datasets are stored in the second memory location via a second pointer to the second memory location.

19 . The computer program product of claim 15 , wherein generating the second code branch comprises replicating the plurality of code sets associated with the first code branch and executing the replicated plurality of code sets as part of the updating process independently of the plurality of code sets associated with the first code branch.

20 . The computer program product of claim 15 , wherein the first code branch is associated with respective memory locations which, by means of the updated one or more pointers, point to the respective memory locations associated with the second code branch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2024
From: SOOKPRASONG, JAMIE
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 069235/0287 →
Continuity (2)
Continuation 17843435 · Jun 17, 2022
Related Publication 20250068647A1 · Feb 27, 2025
References Cited (13)
US 11886439B1 · Hwang et al. · 2024 [cited by applicant]
US 20170228405A1 · Ward et al. · 2017 [cited by applicant]
US 20170357648A1 · Fink et al. · 2017 [cited by applicant]
US 20180240290A1 · Kumar et al. · 2018 [cited by applicant]
US 20190114335A1 · Koenig et al. · 2019 [cited by applicant]
US 20190147114A1 · MacLean et al. · 2019 [cited by applicant]
US 20190302981A1 · Storr et al. · 2019 [cited by applicant]
US 20210064475A1 · Baker · 2021 [cited by applicant]
Extended European Search Report mailed Jan. 10, 2023, issued in related European Patent Application No. 22182985.6 (13 pages). [cited by applicant]
Dongyao Wu et al., “Building Pipelines for Heterogeneous Execution Environments for Big Data Processing”, IEEE Software, IEEE, vol. 33, No. 1, Mar. 1, 2016, pp. 60-67. [cited by applicant]
Erik Johannes Husom, “UDAVA An Unsupervised Learning Pipeline for Sensor Data Validation in Manufacturing”, Proceedings of the 9th IEEE/ACM International Conference on Mobile Software Engineering and Systems, ACMPUB27, … [cited by applicant]
Robert Fink, “On Dataset Versioning in Palantir Foundry”, Palantir Blog, Nov. 14, 2019, pp. 1-6. [cited by applicant]
Non-Final Office Action dated Mar. 6, 2024, issued in related U.S. Appl. No. 17/843,435 (37 pages). [cited by applicant]