IP Library Granted Patent US 12,248,519
Granted Patent B2
US 12,248,519 · App. 18/483,042 · Granted Mar 11, 2025

Enhanced processing of time series data via parallelization of instructions

Inventors: Andrew Higgins (London, GB); Thomas Powell (London, GB); Willi Raschkowski (London, GB); Samantha Woodward (New York, NY); Benjamin Duffield (New York, NY)
Assignee: Palantir Technologies Inc.
G06F16/90335G06F16/9027G06F16/907
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,248,519
App. No.
18/483,042
Granted
Mar 11, 2025
Kind
B2
Abstract

Systems and methods are provided for enhanced processing of time series data via parallelization of instructions. An example method includes receiving a query indicating time series datasets and operations to be performed on the time series datasets. Nodes associated with the query are identified, with each node associated with a time series dataset. Nodes associated with operations to be performed are generated. The nodes are assembled into query tree, with parent nodes of the query tree indicating operations that are to be applied to children nodes. Instructions for processing the query tree are generated. At least a subset of the instructions is provided to one or more compute systems for processing in parallel. Results are received, and presented in a user interface.

Claims (55)

1. A computerized method implemented by one or more processors, the method comprising:

generating, based at least in part on a query, a plurality of nodes associated with respective operations to be performed on a plurality of time series datasets, wherein a particular generated node indicates an operation to be applied to at least two time series datasets, wherein at least some of the operations include transformations to be applied to the respective at least two time series datasets, wherein the nodes are identified based on the query, wherein the query indicates metadata, and wherein identifying the nodes comprises:

accessing metadata information associated with the nodes; and

searching for nodes which satisfy the indicated metadata;

generating instructions associated with processing one or more query trees assembled based on the nodes, whereby generating instructions based on the nodes decouples the at least two time series datasets from the query so as to enable increased processing efficiency and responsiveness to the query;

receiving results associated with the generated instructions associated with processing the one or more query trees, wherein the results are generated based in part on the identified nodes satisfying the indicated metadata; and

in response to receiving results associated with the generated instructions associated with processing the one or more query trees, presenting, in a user interface of a user device, the results of processing the one or more query trees,

wherein the results of processing the one or more query trees are streamed to the user device, wherein one or more functions to be applied to the results of processing the one or more query trees are defined on the user device.

2. The computerized method of claim 1 , wherein the operations include at least one of: interpolating between different time series datasets, shifting time series datasets, scaling time series datasets, performing mathematical operations on time series datasets, or filtering time series datasets.

3. The computerized method of claim 1 , wherein the nodes are identified based on the query, wherein the query indicates metadata, and wherein identifying the nodes comprises:

accessing metadata information associated with nodes; and

searching for nodes which satisfy the indicated metadata.

4. The computerized method of claim 1 further comprising:

providing the generated instructions to a plurality of computer systems for processing the one or more query trees in parallel.

5. The computerized method of claim 1 , wherein the one or more query trees comprise parent nodes and children nodes, and wherein the parent nodes indicate operations which are to be applied to the children nodes.

6. The computerized method of claim 1 , wherein the generated nodes are assembled into the one or more query trees, and wherein assembling the one or more query trees comprises:

identifying time series datasets to be included in each of the nodes; and

assembling the respective nodes into respective query trees, wherein each query tree includes same nodes associated with operations to be performed.

7. The computerized method of claim 1 , wherein the user device presents a user interface which includes the results as an interactive table responsive to user input, and wherein the user input causes adjustment to the stream.

8. The computerized method of claim 1 , wherein the query indicates an extent to which the instructions are to be parallelized.

9. A system comprising one or more computers and computer storage media storing instructions that, when executed by the system, cause the system to perform operations comprising:

generating, based at least in part on a query, a plurality of nodes associated with respective operations to be performed on a plurality of time series datasets, wherein a particular generated node indicates an operation to be applied to at least two time series datasets, wherein at least some of the operations include transformations to be applied to the respective at least two time series datasets, wherein the nodes are identified based on the query, wherein the query indicates metadata, and wherein identifying the nodes comprises:

accessing metadata information associated with the nodes; and

searching for nodes which satisfy the indicated metadata;

generating instructions associated with processing one or more query trees assembled based on the nodes, whereby generating instructions based on the nodes decouples the at least two time series datasets from the query so as to enable increased processing efficiency and responsiveness to the query;

receiving results associated with the generated instructions associated with processing the one or more query trees, wherein the results are generated based in part on the identified nodes satisfying the indicated metadata; and

in response to receiving results associated with the generated instructions associated with processing the one or more query trees, presenting, in a user interface of a user device, the results of processing the one or more query trees,

wherein the results of processing the one or more query trees are streamed to the user device, wherein one or more functions to be applied to the results of processing the one or more query trees are defined on the user device.

10. The system of claim 9 , wherein the operations include at least one of:

interpolating between different time series datasets, shifting time series datasets, scaling time series datasets, performing mathematical operations on time series datasets, or filtering time series datasets.

11. The system of claim 9 , wherein the nodes are identified based on the query, wherein the query indicates metadata, and wherein identifying the nodes comprises:

accessing metadata information associated with nodes; and

searching for nodes which satisfy the indicated metadata.

12. The system of claim 9 , wherein the operations further comprise:

providing the generated instructions to a plurality of computer systems for processing the one or more query trees in parallel.

13. The system of claim 9 , wherein the one or more query trees comprise parent nodes and children nodes, and wherein the parent nodes indicate operations which are to be applied to the children nodes.

14. The system of claim 9 , wherein the generated nodes are assembled into the one or more query trees, and wherein assembling the one or more query trees comprises:

identifying time series datasets to be included in each of the nodes; and

assembling the respective nodes into respective query trees, wherein each query tree includes same nodes associated with operations to be performed.

15. The system of claim 9 , wherein the user device presents a user interface which includes the results as an interactive table responsive to user input, and wherein the user input causes adjustment to the stream.

16. The system of claim 9 , wherein the query indicates an extent to which the instructions are to be parallelized.

17. Non-transitory computer storage media storing instructions that when executed by a system of one or more computers, cause the system to perform operations comprising:

generating, based at least in part on a query, a plurality of nodes associated with respective operations to be performed on a plurality of time series datasets, wherein a particular generated node indicates an operation to be applied to at least two time series datasets, wherein at least some of the operations include transformations to be applied to the respective at least two time series datasets, wherein the nodes are identified based on the query, wherein the query indicates metadata, and wherein identifying the nodes comprises:

accessing metadata information associated with the nodes; and

searching for nodes which satisfy the indicated metadata;

generating instructions associated with processing one or more query trees assembled based on the nodes, whereby generating instructions based on the nodes decouples the at least two time series datasets from the query so as to enable increased processing efficiency and responsiveness to the query;

receiving results associated with the generated instructions associated with processing the one or more query trees, wherein the results are generated based in part on the identified nodes satisfying the indicated metadata; and

in response to receiving results associated with the generated instructions associated with processing the one or more query trees, presenting, in a user interface of a user device, the results of processing the one or more query trees,

wherein the results of processing the one or more query trees are streamed to the user device, wherein one or more functions to be applied to the results of processing the one or more query trees are defined on the user device.

18. The computer storage media of claim 17 , wherein the operations include at least one of: interpolating between different time series datasets, shifting time series datasets, scaling time series datasets, performing mathematical operations on time series datasets, or filtering time series datasets.

19. The computer storage media of claim 17 , wherein the nodes are identified based on the query, wherein the query indicates metadata and wherein identifying the nodes comprises:

accessing metadata information associated with nodes; and

searching for nodes which satisfy the indicated metadata.

20. The computer storage media of claim 17 , wherein the operations further comprise:

providing the generated instructions to a plurality of computer systems for processing the one or more query trees in parallel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2023
From: HIGGINS, ANDREW; POWELL, THOMAS; RASCHKOWSKI, WILLI; WOODWARD, SAMANTHA; DUFFIELD, BENJAMIN
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 065169/0462 →
Continuity (4)
Continuation 17450924 · Oct 14, 2021
Continuation 16533016 · Aug 6, 2019
Provisional Application 62733515 · Sep 19, 2018
Related Publication 20240037152A1 · Feb 1, 2024
References Cited (19)
US 5742806A · Reiner · 1998 [cited by examiner]
US 6704724B1 · Ellmann et al. · 2004 [cited by applicant]
US 9335911B1 · Elliot et al. · 2016 [cited by applicant]
US 10423616B2 · Li et al. · 2019 [cited by applicant]
US 11151197B2 · Higgins et al. · 2021 [cited by applicant]
US 11816164B2 · Higgins et al. · 2023 [cited by applicant]
US 20100306249A1 · Hill · 2010 [cited by examiner]
US 20140278755A1 · Eberl et al. · 2014 [cited by applicant]
US 20150149879A1 · Miller et al. · 2015 [cited by applicant]
US 20170011098A1 · Tsirulnik · 2017 [cited by examiner]
US 20180039399A1 · Kaltegaertner et al. · 2018 [cited by applicant]
US 20190114557A1 · Ashrafi · 2019 [cited by applicant]
EP 3340078 · 2018 [cited by applicant]
EP 3627347 · 2020 [cited by applicant]
U.S. Pat. No. 11,151,197, Enhanced Processing of Time Series Data via Parallelization of Instructions, Oct. 19, 2021. [cited by applicant]
U.S. Pat. No. 11,816,164, Enhanced Processing of Time Series Data via Parallelization of Instructions, Nov. 14, 2023. [cited by applicant]
Official Communication for European Patent Application No. 19194745.6 dated Jan. 27, 2020, 9 pages. [cited by applicant]
Official Communication for European Patent Application No. 19194745.6 dated Feb. 12, 2021, 8 pages. [cited by applicant]
Official Communication for European Patent Application No. 19194745.6 dated Jul. 8, 2022, 13 pages. [cited by applicant]
Cited By (1)
US 12,613,920