IP Library Granted Patent US 11,106,638
Granted Patent B2
US 11,106,638 · App. 16/018,777 · Granted Aug 31, 2021

Data revision control in large-scale data analytic systems

Inventors: Robert Fink (Palo Alto, CA); Lynn Cuthriell (San Francisco, CA); Adam Anderson (San Francisco, CA); Adam Borochoff (New York, NY); Catherine Lu (Newark, CA); Joseph Rafidi (Mountain View, CA); Karanveer Mohan (San Francisco, CA); Matthew Jenny (San Francisco, CA); Matthew Maclean (New York, NY); Michelle Guo (Fremont, CA); Parvathy Menon (San Jose, CA); Ryan Rowe (San Francisco, CA)
Assignee: Palantir Technologies Inc.
G06F16/1873G06F16/182G06F16/219G06F16/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 11,106,638
App. No.
16/018,777
Granted
Aug 31, 2021
Kind
B2
Abstract

A computer-implemented system and method for data revision control in a large-scale data analytic systems. In one embodiment, for example, a computer-implemented method comprises the operations of storing a first version of a dataset that is derived by executing a first version of driver program associated with the dataset; and storing a first build catalog entry comprising an identifier of the first version of the dataset and comprising an identifier of the first version of the driver program.

Claims (52)

1. A method for data revision control in a large-scale data analytic system:

storing a first version of a first dataset that is derived from a first version of a second dataset based on a first execution of a first version of a driver program;

storing, in a build catalog, a first build catalog entry comprising an identifier of the first version of the first dataset, an identifier of the first version of the second dataset, a first branch name, and an identifier of the first version of the driver program;

storing a second version of the first dataset that is derived from a second version of the second dataset based on a second execution of the first version of the driver program;

storing, in the build catalog, a second build catalog entry comprising an identifier of the second version of the first dataset, an identifier of the second version of the second dataset, a second branch name that is different from the first branch name, and an identifier of the first version of the driver program, the build catalog including the first build catalog entry and the second build catalog entry; and

causing display of a provenance graph in a graphical user interface based on the first build catalog entry and the second build catalog entry, the provenance graph display comprising: a first node representing the first version of the first dataset, a second node representing the first version of the second dataset, a third node representing the second version of the first dataset, a fourth node, representing the second version of the second dataset, a first directed edge from the first node to the second node, and a second directed edge from the third node to the fourth node.

2. The method of claim 1 , further comprising:

storing a first transaction entry in a database, the first transaction entry comprising a first transaction commit identifier of the first version of the first dataset;

wherein the first build catalog entry comprises the first transaction commit identifier;

storing a second transaction entry in the database, the second transaction entry comprising a second transaction commit identifier of the first version of the second dataset;

wherein the identifier of the first version of the second dataset in the first build catalog entry is the second transaction commit identifier;

storing a third transaction entry in the database, the third transaction entry comprising a third transaction commit identifier of the second version of the second dataset;

wherein the identifier of the second version of the second dataset in the second build catalog entry is the third transaction commit identifier.

3. The method of claim 1 , further comprising storing the first version of the first dataset in a distributed file system.

4. The method of claim 1 , wherein the identifier of the first version of the first dataset is an identifier assigned to a commit of a transaction in context of which the first version of the first dataset is stored.

5. The method of claim 1 , wherein the first version of the driver program, when executed to produce the first version of the first dataset, transforms data of the first version of the second dataset to produce data of the first version of the first dataset.

6. The method of claim 1 , wherein the provenance graph comprises nodes and directed edges there between, each node representing a dataset and each directed edge between two nodes representing a derivation dependency between datasets.

7. The method of claim 1 , wherein a node is color-coded to indicate that the first dataset is out-of-date with respect to the second dataset.

8. One or more non-transitory computer-readable media storing instructions for execution by one or more processors, the instructions configured for performing operations comprising:

storing a first version of a first dataset that is derived from a first version of a second dataset based on a first execution of a first version of a driver program;

storing, in a build catalog, a first build catalog entry comprising an identifier of the first version of the first dataset, an identifier of the first version of the second dataset, a first branch name, and an identifier of the first version of the driver program;

storing a second version of the first dataset that is derived from a second version of the second dataset based on a second execution of the first version of the driver program;

storing, in the build catalog, a second build catalog entry comprising an identifier of the second version of the first dataset, an identifier of the second version of the second dataset, a second branch name that is different from the first branch name, and an identifier of the first version of the driver program, the build catalog including the first build catalog entry and the second build catalog entry; and

causing display of a provenance graph in a graphical user interface based on the first build catalog entry and the second build catalog entry, the provenance graph display comprising: a first node representing the first version of the first dataset, a second node representing the first version of the second dataset, a third node representing the second version of the first dataset, a fourth node, representing the second version of the second dataset, a first directed edge from the first node to the second node, and a second directed edge from the third node to the fourth node.

9. The one or more non-transitory computer-readable media of claim 8 , wherein the operations further comprise:

storing a first transaction entry in a database, the first transaction entry comprising a first transaction commit identifier of the first version of the first dataset;

wherein the first build catalog entry comprises the first transaction commit identifier;

storing a second transaction entry in the database, the second transaction entry comprising a second transaction commit identifier of the first version of the second dataset;

wherein the identifier of the first version of the second dataset in the first build catalog entry is the second transaction commit identifier;

storing a third transaction entry in the database, the third transaction entry comprising a third transaction commit identifier of the second version of the second dataset;

wherein the identifier of the second version of the second dataset in the second build catalog entry is the third transaction commit identifier.

10. The one or more non-transitory computer-readable media of claim 8 , wherein the operations further comprise: storing the first version of the first dataset in a distributed file system.

11. The one or more non-transitory computer-readable media of claim 8 , wherein the identifier of the first version of the first dataset is an identifier assigned to a commit of a transaction in context of which the first version of the first dataset is stored.

12. The one or more non-transitory computer-readable media of claim 8 , wherein the first version of the driver program, when executed to produce the first version of the first dataset, transforms data of the first version of the second dataset to produce data of the first version of the first dataset.

13. The one or more non-transitory computer-readable media of claim 8 , wherein the provenance graph comprises nodes and directed edges there between, each node representing a dataset and each directed edge between two nodes representing a derivation dependency between datasets.

14. The one or more non-transitory computer-readable media of claim 8 , wherein a node is color-coded to indicate that the first dataset is out-of-date with respect to the second dataset.

15. A system, comprising:

one or more processors;

one or more storage media storing one or more programs which, when executed by the one or more processors, cause:

storing a first version of a first dataset that is derived from a first version of a second dataset based on a first execution of a first version of a driver program;

storing, in a build catalog, a first build catalog entry comprising an identifier of the first version of the first dataset, an identifier of the first version of the second dataset, a first branch name, and an identifier of the first version of the driver program;

storing a second version of the first dataset that is derived from a second version of the second dataset based on a second execution of the first version of the driver program;

storing, in the build catalog, a second build catalog entry comprising an identifier of the second version of the first dataset, an identifier of the second version of the second dataset, a second branch name that is different from the first branch name, and an identifier of the first version of the driver program, the build catalog including the first build catalog entry and the second build catalog entry; and

causing display of a provenance graph in a graphical user interface based on the first build catalog entry and the second build catalog entry, the provenance graph display comprising: a first node representing the first version of the first dataset, a second node representing the first version of the second dataset, a third node representing the second version of the first dataset, a fourth node, representing the second version of the second dataset, a first directed edge from the first node to the second node, and a second directed edge from the third node to the fourth node.

16. The system of claim 15 further comprising:

storing a first transaction entry in a database, the first transaction entry comprising a first transaction commit identifier of the first version of the first dataset;

wherein the first build catalog entry comprises the first transaction commit identifier;

storing a second transaction entry in the database, the second transaction entry comprising a second transaction commit identifier of the first version of the second dataset;

wherein the identifier of the first version of the second dataset in the first build catalog entry is the second transaction commit identifier;

storing a third transaction entry in the database, the third transaction entry comprising a third transaction commit identifier of the second version of the second dataset;

wherein the identifier of the second version of the second dataset in the second build catalog entry is the third transaction commit identifier.

17. The system of claim 15 , wherein the first version of the driver program, when executed to produce the first version of the first dataset, transforms data of the first version of the second dataset to produce data of the first version of the first dataset.

Assignments (7)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
Continuity (3)
Continuation 15262207 · Sep 12, 2016
Provisional Application 62349548 · Jun 13, 2016
Related Publication 20180341651A1 · Nov 29, 2018