IP Library Granted Patent US 10,713,035
Granted Patent B2
US 10,713,035 · App. 16/218,325 · Granted Jul 14, 2020

Systems and methods for peer-to-peer build sharing

Inventor: Matthew Avant (Brooklyn, NY)
Assignee: Palantir Technologies Inc.
G06F8/65G06F8/71G06F16/2246G06F16/284G06F16/951H04L67/10G06F8/36G06F9/5061
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 10,713,035
App. No.
16/218,325
Granted
Jul 14, 2020
Kind
B2
Abstract

Systems and methods are provided for obtaining a build object over a communication network, the build object comprising at least a portion of a first build. The build object is stored locally. A build modification object is obtained over the communication network, the build modification object comprising a change between the first build and a second build. The build object updated using the build modification object obtained over the communication network. At least a portion of the updated build object is provided to a first peer build system over the communication network.

Claims (53)

1. A system comprising:

one or more processors; and

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

obtaining a build object over a communication network, the build object comprising at least a portion of a first build and comprising content items stored in leaf nodes of a hash tree structure;

storing the build object;

obtaining a build modification object over the communication network, the build modification object comprising a change in the hash tree structure;

updating the build object using the build modification object obtained over the communication network, the updating the build object comprising generating a second build object using the build modification object; and

providing at least a portion of the updated build object to a first peer build system over the communication network, the at least a portion of the updated build object comprising the second build object.

2. The system of claim 1 , wherein each of the content items comprises any of a file or a binary.

3. The system of claim 1 , wherein the obtaining the build object over the communication network comprises obtaining the build object from a second peer build system over the communication network, and the obtaining the build modification object over the communication network comprises obtaining the build modification object over the communication from an originating build system storing a complete instance of the first build and a complete instance of the second build.

4. The system of claim 1 , wherein the build object comprises an immutable build object.

5. The system of claim 1 , wherein the instructions further cause the system to perform:

predicting one or more respective build objects stored by a plurality of respective peer build systems;

receiving a build action request;

selecting a third peer build system from the plurality of respective peer build systems based on the build action request and the prediction;

obtaining a second build object from the third peer build system based on the build action request;

determining whether the second build object satisfies the build action request;

if the second build object satisfies the build action request, processing the build action request using the second build object; and

if the second build object does not satisfy the build action request, iteratively obtaining one or more different build objects from one or more different peer build systems from the plurality of respective build systems until a particular build object of the one or more different build objects satisfies the build action request; and processing the build action request using the particular build object of the one or more different build objects.

6. The system of claim 5 , wherein the selecting a third peer build system from the plurality of respective peer build systems based on the build action request and the prediction comprises selecting a particular peer build system predicted to store a particular build object indicated by the build action request.

7. The system of claim 6 , wherein the particular peer build system is selected based on a latency relative to one or more other peers of the plurality of peers predicted to store the particular build object indicated by the build action request.

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

obtaining one or more additional build objects from one or more additional peer build systems; and

creating a complete instance of the second build from the updated build object and the one or more additional build objects, the complete instance of the second build comprising a hash tree structure.

9. The system of claim 1 , wherein storing the build object comprises storing the build object in a Merkle tree structure, the build object comprising a portion of a software build.

10. A method being implemented by a computing system including one or more physical processors and storage media storing machine-readable instructions, the method comprising:

obtaining a build object over a communication network, the build object comprising at least a portion of a first build and comprising content items stored in leaf nodes of a hash tree structure;

storing the build object;

obtaining a build modification object over the communication network, the build modification object comprising a change in the hash tree structure;

updating the build object using the build modification object obtained over the communication network, the updating the build object comprising generating a second build object using the build modification object; and

providing at least a portion of the updated build object to a first peer build system over the communication network, the at least a portion of the updated build object comprising the second build object.

11. The method of claim 10 , wherein each of the content items comprises any of a file or a binary.

12. The method of claim 10 , wherein the obtaining the build object over the communication network comprises obtaining the build object from a second peer build system over the communication network, and the obtaining the build modification object over the communication network comprises obtaining the build modification object over the communication from an originating build system storing a complete instance of the first build and a complete instance of the second build.

13. The method of claim 10 , wherein the build object comprises an immutable build object.

14. The method of claim 10 , further comprising:

predicting one or more respective build objects stored by a plurality of respective peer build systems;

receiving a build action request;

selecting a third peer build system from the plurality of respective peer build systems based on the build action request and the prediction;

obtaining a second build object from the third peer build system based on the build action request;

determining whether the second build object satisfies the build action request;

if the second build object satisfies the build action request, processing the build action request using the second build object; and

if the second build object does not satisfy the build action request, iteratively obtaining one or more different build objects from one or more different peer build systems from the plurality of respective build systems until a particular build object of the one or more different build objects satisfies the build action request; and processing the build action request using the particular build object of the one or more different build objects.

15. The method of claim 14 , wherein the selecting a third peer build system from the plurality of respective peer build systems based on the build action request and the prediction comprises selecting a particular peer build system predicted to store a particular build object indicated by the build action request.

16. The method of claim 15 , wherein the particular peer build system is selected based on a latency relative to one or more other peers of the plurality of peers predicted to store the particular build object indicated by the build action request.

17. The method of claim 10 , further comprising:

obtaining one or more additional build objects from one or more additional peer build systems; and

creating a complete instance of the second build from the updated build object and the one or more additional build objects, the complete instance of the second build comprising a hash tree structure.

18. A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

obtaining a build object over a communication network, the build object comprising at least a portion of a first build and comprising content items stored in leaf nodes of a hash tree structure;

storing the build object;

obtaining a build modification object over the communication network, the build modification object comprising a change in the hash tree structure;

updating the build object using the build modification object obtained over the communication network, the updating the build object comprising generating a second build object using the build modification object; and

providing at least a portion of the updated build object to a first peer build system over the communication network, the at least a portion of the updated build object comprising the second build object.

Assignments (8)
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 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
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: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2019
From: AVANT, MATTHEW
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 048565/0746 →