IP Library Granted Patent US 12,613,920
Granted Patent B2
US 12,613,920 · App. 19/020,146 · Granted Apr 28, 2026

Enhanced processing of time series data via parallelization of instructions

Inventors: Andrew Higgins (Brooklyn, NY); 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,613,920
App. No.
19/020,146
Granted
Apr 28, 2026
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 (61)

1 . A computer-implemented method comprising:

by a system of one or more computers,

receiving a query indicating a plurality of time series datasets and operations to be performed on the plurality of time series datasets;

identifying nodes associated with the query, each node being associated with an individual time series dataset of the plurality of time series datasets, wherein nodes are identified based on metadata indicated in the query, and wherein identifying the nodes comprises:

accessing metadata information associated with the nodes; and

searching for nodes which satisfy the indicated metadata;

generating, based at least in part on the query, one or more nodes associated with respective operations performed on the plurality of time series datasets, wherein a first node of the one or more nodes causes transformation of two or more time series datasets of the plurality of time series datasets;

assembling the nodes into at least one query tree, wherein parent nodes of the at least one query tree indicate operations that are to be applied to child nodes;

generating instructions associated with processing the at least one query tree, whereby generating instructions based on the nodes decouples the at least two time series datasets from the query so as to enable processing of at least two nodes at least partly in parallel and to enable increased processing efficiency and responsiveness to the query; and

in response to receiving results associated with the generated instructions, presenting, in a user interface, the results.

2 . The computer-implemented method of claim 1 , wherein each node points to a location at which a respective time series dataset is stored.

3 . The computer-implemented method of claim 1 , wherein searching for nodes comprises utilizing a metadata service, the metadata service extracting metadata from time series datasets.

4 . The computer-implemented method of claim 1 , wherein assembling the nodes into at least one query tree comprises:

determining, based on a generated node, that an operation is to be applied to at least two sets of nodes associated with time series datasets;

identifying, based on the determination, nodes to be included in each of the at least two sets of nodes; and

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

5 . The computer-implemented method of claim 4 , wherein the nodes included in each set are associated with same metadata.

6 . The computer-implemented method of claim 1 , further comprising:

by the system of one or more computers,

accessing information indicating one or more user-defined functions to be applied to the results; and

applying the one or more user-defined functions to the results, wherein the one or more user-defined functions are applied sequentially to a stream of the results.

7 . The computer-implemented method of claim 1 , wherein the results are received as a data frame, and wherein the user interface presents the results as an interactive table responsive to user input.

8 . 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:

receiving a query indicating a plurality of time series datasets and operations to be performed on the plurality of time series datasets;

identifying nodes associated with the query, each node being associated with an individual time series dataset of the plurality of time series datasets, wherein nodes are identified based on metadata indicated in the query, and wherein identifying the nodes comprises:

accessing metadata information associated with the nodes; and

searching for nodes which satisfy the indicated metadata;

generating, based at least in part on the query, one or more nodes associated with respective operations performed on the plurality of time series datasets, wherein a first node of the one or more nodes causes transformation of two or more time series datasets of the plurality of time series datasets;

assembling the nodes into at least one query tree, wherein parent nodes of the at least one query tree indicate operations that are to be applied to child nodes;

generating instructions associated with processing the at least one query tree, whereby generating instructions based on the nodes decouples the at least two time series datasets from the query so as to enable processing of at least two nodes at least partly in parallel and to enable increased processing efficiency and responsiveness to the query; and

in response to receiving results associated with the generated instructions, presenting, in a user interface, the results.

9 . The system of claim 8 , wherein each node points to a location at which a respective time series dataset is stored.

10 . The system of claim 8 , wherein assembling the nodes into at least one query tree comprises:

determining, based on a generated node, that an operation is to be applied to at least two sets of nodes associated with time series datasets;

identifying, based on the determination, the nodes to be included in each of the at least two sets of nodes; and

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

11 . The system of claim 10 , wherein the nodes included in each set are associated with same metadata.

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

accessing information indicating one or more user-defined functions to be applied to the results; and

applying the one or more user-defined functions to the results, wherein the functions are applied sequentially to a stream of the results.

13 . The system of claim 8 , wherein the results are received as a data frame, and wherein the user interface presents the results as an interactive table responsive to user input.

14 . 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:

receiving a query indicating a plurality of time series datasets and operations to be performed on the plurality of time series datasets;

identifying nodes associated with the query, each node being associated with an individual time series dataset of the plurality of time series datasets, wherein nodes are identified based on metadata indicated in the query, and wherein identifying the nodes comprises:

accessing metadata information associated with the nodes; and

searching for nodes which satisfy the indicated metadata;

generating, based at least in part on the query, one or more nodes associated with respective operations performed on the plurality of time series datasets, wherein a first node of the one or more nodes causes transformation of two or more time series datasets of the plurality of time series datasets;

assembling the nodes into at least one query tree, wherein parent nodes of the at least one query tree indicate operations that are to be applied to child nodes;

generating instructions associated with processing the at least one query tree, whereby generating instructions based on the nodes decouples the at least two time series datasets from the query so as to enable processing of at least two nodes at least partly in parallel and to enable increased processing efficiency and responsiveness to the query; and

in response to receiving results associated with the generated instructions, presenting, in a user interface, the results.

15 . The non-transitory computer storage media of claim 14 , wherein each node points to a location at which a respective time series dataset is stored.

16 . The non-transitory computer storage media of claim 14 , wherein assembling the nodes into at least one query tree comprises:

determining, based on a generated node, that an operation is to be applied to at least two sets of nodes associated with time series datasets;

identifying, based on the determination, the nodes to be included in each of the at least two sets; and

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

17 . The non-transitory computer storage media of claim 16 , wherein the nodes included in each set are associated with same metadata.

18 . The non-transitory computer storage media of claim 14 , wherein the operations further comprise:

accessing information indicating one or more user-defined functions to be applied to the results; and

applying the one or more user-defined functions to the results, wherein the functions are applied sequentially to a stream of the results.

19 . The non-transitory computer storage media of claim 14 , wherein the results are received as a data frame, and wherein the user interface presents the results as an interactive table responsive to user input.

20 . The non-transitory computer storage media of claim 14 , wherein the metadata includes at least one of: an identifier of a time series dataset, a unit corresponding to values in a time series dataset, location information for data in a time series dataset, or a use-case of a time series dataset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2025
From: HIGGINS, ANDREW; POWELL, THOMAS; RASCHKOWSKI, WILLI; WOODWARD, SAMANTHA; DUFFIELD, BENJAMIN
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 069864/0881 →
Continuity (5)
Continuation 18483042 · Oct 9, 2023
Continuation 17450924 · Oct 14, 2021
Continuation 16533016 · Aug 6, 2019
Provisional Application 62733515 · Sep 19, 2018
Related Publication 20250181646A1 · Jun 5, 2025
References Cited (12)
US 6704724B1 · Ellmann · 2004 [cited by examiner]
US 9335911B1 · Elliot · 2016 [cited by examiner]
US 10423616B2 · Li · 2019 [cited by examiner]
US 11151197B2 · Higgins et al. · 2021 [cited by applicant]
US 11816164B2 · Higgins et al. · 2023 [cited by applicant]
US 12248519B2 · Higgins et al. · 2025 [cited by applicant]
US 20170011098A1 · Tsirulnik · 2017 [cited by examiner]
US 20180039399A1 · Kaltegaertner · 2018 [cited by examiner]
US 20240037152A1 · Higgins et al. · 2024 [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]
U.S. Appl. No. 18/483,042, Enhanced Processing of Time Series Data via Parallelization of Instructions, filed Oct. 9, 2023. [cited by applicant]