# US 10,503,732 B2 · Storing time series data for a search query

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,732 B2
- Document ID: US10503732B2
- Status: Granted
- Kind: B2
- Application number: 15/027,842
- Filed: 2013-10-31
- Published: 2016-09-01
- Granted: 2019-12-10
- Earliest claimed: 2013-10-31
- Assignees: Micro Focus LLC
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Mijung Kim; Jun Li; Manish Marwah; Krishnamurthy Viswanathan
- Web page: https://patentgrep.com/patent/US10503732B2

## CPC

- G06F 16/24532: {of parallel queries}
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 16/2477: {Temporal data queries}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Storing time series data for a search query includes identifying a time series whose representation is to be pre-computed based on available memory storage, pre-computing at least one representation of the identified time series, and storing the at least one representation in the memory storage.

## Claims

### Claim 1

A method for storing time series data for a search query, comprising:
selecting, by a processor, time series data based on a frequency that the time series data was a result of previous queries, wherein the time series data is selected in order to pre-compute a representation of the time series data before a search query for the time series data is received;
determining, by the processor, different types of representations of the time series data to pre-compute based on an amount of available memory storage;
pre-computing, by the processor, the representations of the time series data based on information taken from the time series data, the representations being pre-computed according to the determined types before the search query for the time series data is received, wherein each of the representations of the time series data represents a pattern of the time series data;
storing, by the processor, the representations of the time series data in the memory storage before the search query for the time series data is received; and
in response to receiving the search query for the time series data, determining, by the processor, which representation of the time series data provides an optimum query response time based on parameters including a length of the search query and a length of the pattern of the respective representations of the time series data, and generating an execution plan for the search query based on the representation of the time series data that provides the optimum query response time.

### Claim 2 (depends on 1)

The method of claim 1, further comprising repartitioning the memory storage so that the time series data and the representations of the time series data are stored on a common machine.

### Claim 3 (depends on 2)

The method of claim 2, further comprising executing the search query based on the execution plan and the repartitioned memory storage.

### Claim 4 (depends on 1)

The method of claim 1, further comprising uniformly distributing the time series data and the representations of the time series data along with other time series data and associated representations of the other time series data across multiple machines.

### Claim 5 (depends on 1)

The method of claim 1, further comprising executing multiple searches of the search query in parallel across multiple machines.

### Claim 6 (depends on 1)

The method of claim 1, wherein generating the execution plan for the search query comprises determining a search plan based on a materialization percentage of the time series data.

### Claim 7 (depends on 1)

The method of claim 1, wherein the different types of representations of the time series data include a Fast Fourier Transform (FFT) based representation.

### Claim 8 (depends on 1)

The method of claim 1, wherein the different types of representations of the time series data include a brute force based representation.

### Claim 9 (depends on 1)

The method of claim 1, further comprising assigning the time series data and the representations of the time series data a common identifier.

### Claim 10

A system for storing time series data for a search query, comprising:
a processor; and
a non-transitory computer readable medium storing instructions that when executed cause the processor to:
select time series data based on a frequency that the time series data was a result of previous queries, wherein the time series data is selected in order to pre-compute a representation of the time series data before a search query for the time series data is received;
determine different types of representations of the time series data to pre-compute based on an amount of available memory storage;
pre-compute the representations of the time series data based on information taken from the time series data, the representations being pre-computed according to the determined types before the search query for the time series data is received, wherein each of the representations of the time series data represents a pattern of the time series data;
store the representations of the time series data in the memory storage before the search query for the time series data is received; and
in response to receipt of the search query for the time series data, determine which representation of the time series data provides an optimum query response time based on parameters including a length of the search query and a length of the pattern of the respective representations of the time series data, and generate an execution plan for the search query based on the representation of the time series data that provides the optimum query response time.

### Claim 11 (depends on 10)

The system of claim 10, wherein the instructions are executable to cause the processor to:
repartition the memory storage so that the time series data and the representations of the time series data are stored on a common machine; and
execute the search query based on the execution plan and the repartitioned memory storage.

### Claim 12 (depends on 10)

The system of claim 10, wherein the instructions are to cause the processor to execute multiple searches of the search query in parallel across multiple machines.

### Claim 13 (depends on 10)

The system of claim 10, wherein the instructions are to cause the processor to uniformly distribute the time series data and the representations of the time series data along with other time series data and associated representations of the other time series data across multiple machines.

### Claim 14 (depends on 10)

The system of claim 10, wherein the instructions to cause the processor to generate the execution plan for the search query include instructions to cause the processor to determine a search plan based on a materialization percentage of the time series data.

### Claim 15

A non-transitory computer readable storage medium storing instructions that, when executed, cause a processor to:
select time series data based on a frequency that the time series data was a result of previous queries, wherein the time series data is selected in order to pre-compute a representation of the time series data before a search query for the time series data is received;
determine different types of representations of the time series data to pre-compute based on an amount of available memory storage;
pre-compute the representations of the time series data based on information taken from the time series data, the representations being pre-computed according to the determined types before the search query for the time series data is received, wherein each of the representations of the time series data represents a pattern of the time series data;
store the representations of the time series data in the memory storage before the search query for the time series data is received;
in response to receipt of the search query for the time series data, determine which representation of the time series data provides an optimum query response time based on parameters including a length of the search query and a length of the pattern of the respective representations of the time series data, and generate an execution plan for the search query based on the representation of the time series data that provides the optimum query response time; and
execute the search query based on the execution plan.

### Claim 16 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the instructions are to cause the processor to execute multiple searches of the search query in parallel across multiple machines.

### Claim 17 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the instructions are to cause the processor to further uniformly distribute the time series data and the representations of the time series data along with other time series data and associated representations of the other time series data across multiple machines.

### Claim 18 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the instructions to cause the processor to generate the execution plan for the search query include instructions to cause the processor to determine a search plan based on a materialization percentage of the time series data.

### Claim 19 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the instructions are executable to cause the processor to:
repartition the memory storage so that the time series data and the representations of the time series data are stored on a common machine; and
execute the search query based on the execution plan and the repartitioned memory storage.
