IP Library Granted Patent US 10,606,851
Granted Patent B1
US 10,606,851 · App. 16/175,371 · Granted Mar 31, 2020

Intelligent compute request scoring and routing

Inventors: Matthew Lynch (Brooklyn, NY); Brandon Krieger (Brooklyn, NY); Giulio Mecocci (Brooklyn, NY); Kyle Patron (Philadelphia, PA); Kevin Pyc (New York, NY); Sander Kromwijk (Long Island City, NY)
Assignee: Palantir Technologies Inc.
G06F16/24578G06F9/5027
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,606,851
App. No.
16/175,371
Granted
Mar 31, 2020
Kind
B1
Abstract

A system and methods for determining computer resource allocation, the system having a network communication interface configured to receive a query from a device, the query indicating a request to perform a processing operation on a portion of one or more data set. The system may also include data storage for data including historical information related to processing of data sets by back-end computer resources, and hardware processors configured to determine one or more scores associated with a query and based at least in part on the historical information. The system may determine a particular back-end computer resource with a highest score, provide a compute request to the particular back-end computer resource to perform a processing operation on a portion of one or more data sets, and store processing information related to the processing of the compute request by the particular back-end computer resource as historical information.

Claims (46)

1. A system comprising:

a resource allocation system, comprising

a network communication interface configured to receive a query from a device, the query indicating a request to perform a processing operation on a portion of one or more data sets;

a first non-transitory computer storage medium configured to store data provided by two or more back-end computer resources, the data including historical information related to processing of previously received queries;

a second non-transitory computer storage medium configured to at least store computer-executable instructions; and

one or more computer hardware processors in communication with the second non-transitory computer storage medium, the one or more computer hardware processors configured to execute the computer-executable instructions to at least:

determine whether the query includes user defined code for execution on a back-end computer resource,

determine one or more scores associated with the query, the one or more scores indicating a particular back-end computer resource, of the two or more back-end resources, wherein if the query includes user defined code, at least one score is based at least in part on the query including user defined code,

provide a compute request to the particular back-end computer resource to perform a processing operation on a portion of one or more data sets, wherein if the query includes user defined code the compute request includes a risk mitigation required for the particular back-end computer resource, and

store processing information related to the processing of the compute request by the particular back-end computer resource as historical information in the first non-transitory computer storage medium.

2. The system of claim 1 , wherein the particular back-end computer resource is indicated by a determined high score associated with the query.

3. The system of claim 1 , wherein at least one of the scores is based at least in part on the originator of the query.

4. The system of claim 3 , wherein the originator is associated with a predefined group of a number of groups that the query maybe associated with.

5. The system of claim 1 , wherein at least one of the scores is based at least in part on the type or characteristic of the query.

6. The system of claim 1 , wherein at least one of the scores is based at least in part on stored historical information.

7. The system of claim 6 , wherein the one or more computer hardware processors are further configured to execute the computer-executable instructions to at least receive processing information from two or more back-end computer resources and save the processing information in the first non-transitory computer storage medium as historical data.

8. The system of claim 6 , wherein the historical data includes processing time.

9. The system of claim 6 , wherein the historical data includes characteristics of the computer resource.

10. The system of claim 6 , wherein the historical data includes query originator data.

11. The system of claim 6 , wherein the historical data includes data set information corresponding to a particular data set processed by a back-end computer resource, the data set information at least one of the more of number of rows of the data set, the number of columns of the data set, or the overall size of the data set.

12. The system of claim 1 , wherein the one or more computer hardware processors are further configured to execute the computer-executable instructions to control a lifecycle parameter of the back-end computer resources.

13. The system of claim 12 , wherein controlling a lifecycle parameter comprises setting stop and start parameters of a back-end computer resource.

14. The system of claim 12 , wherein controlling a lifecycle parameter comprises controlling start of back-end computer resources with similar compute parameters.

15. The system of claim 12 , wherein controlling a lifecycle parameter comprises controlling start of back-end computer resources having non-similar compute parameters.

16. The system of claim 1 , wherein the one or more computer hardware processors are further configured to execute the computer-executable instructions to start the particular back-end computer resource for a query with user defined code and stop the particular back-end computer resource when the compute request is completed.

17. The system of claim 1 ,

wherein if the query includes user defined code, the one or more computer hardware processors are further configured to execute the computer-executable instructions to:

determine a stop parameter based on the user defined code;

start the particular back-end computer resource;

provide a compute request to the particular backend computer resource; and

stop the particular backend computer resource based on the stop parameter.

18. A method of resource allocation, comprising:

receiving processing information related to processing of compute requests from two or more back-end computer resources;

storing the processing information on a non-transitory computer storage medium as historical information;

receiving a query indicating a request to perform a processing operation on one or more data sets;

determining whether the query includes user defined code for execution on a back-end computer resource;

determining one or more scores associated with the query, the one or more scores indicating a particular back-end computer resource, of the two or more back-end resources, wherein if the query includes user defined code, at least one score is based at least in part on the query including user defined code,

providing a compute request to the particular back-end computer resource to perform a processing operation on a portion of one or more data sets, wherein if the query includes user defined code the compute request includes a risk mitigation required for the particular back-end computer resource,

wherein the method is performed by one or more computer hardware processors configured to execute computer-executable instructions stored on a non-transitory computer storage medium.

19. The method of claim 18 , further comprising starting a first back-end computer resource for a query with user defined code, and stopping the first back-end computer resource when the compute request is completed.

20. The method of claim 18 , further comprising:

wherein if the query includes user defined code,

determining a stop parameter based on the user defined code;

starting the particular back-end computer resource;

providing the compute request to the particular backend computer resource; and

stopping the particular backend computer resource based on the stop parameter.

Assignments (3)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2019
From: LYNCH, MATTHEW; KRIEGER, BRANDON; PATRON, KYLE; PYC, KEVIN; KROMWIJK, SANDER; MECOCCI, GIULIO
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 048660/0466 →
Cited By (1)
US 12,229,150