# US 12,602,354 B1 · Full fidelity storage of metric time series data

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

- Number: US 12,602,354 B1
- Document ID: US12602354B1
- Status: Granted
- Kind: B1
- Application number: 18/103,994
- Filed: 2023-01-31
- Granted: 2026-04-14
- Earliest claimed: 2023-01-31
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Jay Robert Camp; Bogdan Cristian Drutu; Mahdi Ben Hamida; Michael Margulis; Ramakrishnan Hariharan Chandrasekharapuram; Archanan Padmasenan
- Web page: https://patentgrep.com/patent/US12602354B1

## CPC

- G06F 16/162: {Delete operations (erasing in storage systems G06F3/0652)}
- G06F 16/2477: {Temporal data queries}
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Described herein are techniques for aggregating metric time series data upon ingestion, such as prior to intake, analysis, or processing by a data quantizer system. The disclosed techniques can transforming metric time series data into aggregated metric time series data, optionally with reduced complexity or dimensionality, while retaining various statistical information characteristic of the original source metric time series data. The aggregated metric time series data can be used in the same way as the original source metric time series data or other metric time series data, such as for processing or generating streaming analytics data or triggering events or notifications by a data quantizer system.

## Claims

### Claim 1

A computer-implemented method performed by a computing system, the method comprising:
receiving, by a router included in the computing system, a plurality of metric time series;
identifying by the router, based on a filtering criterion, a first subset of the plurality of metric time series for data quantization;
forwarding by the router, the first subset of the plurality of metric time series to a data quantizer system and a second subset of the plurality of metric time series to a full-fidelity storage system, the second subset of the plurality of metric time series being different than the first subset of the of the plurality of metric time series;
buffering, by the full-fidelity storage system, data points for the second subset of the plurality of metric time series received during a buffering window;
upon expiration of the buffering window, recording the data points for the second subset of the plurality of metric time series to a data store included in the full-fidelity storage system;
identifying a selection of one or more particular metric time series of the second subset of the plurality of metric time series recorded in the data store;
responsive to the selection, identifying data points for the one or more particular metric time series recorded in the data store;
responsive to the selection, transmitting, by the full-fidelity storage system, data points for the one or more particular metric time series to the data quantizer system; and
combining, by an analysis engine included in the data quantizer system, the first subset of the plurality of metric time series and the data points for the one or more particular metric time series to generate an analytic data stream which identifies usage of one or more processors included in a data center, wherein the data quantizer system is further configured to: (i) associate one or more particular metric time series with occurrence of a monitored event by flagging the one or more particular metric time series, and (ii) transmit a notification to the router indicating the flagging of the one or more particular metric time series, wherein the notification causes the router to update the filtering criterion such that future data points of the one or more particular metric time series are directed by the router to the data quantizer system instead of the full-fidelity storage system.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising repeating the buffering and the recording a plurality of times for a plurality of additional buffering windows.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein recording the data points for the second subset of the plurality of metric time series comprises packaging the data points into one or more parquet or column-oriented files and storing the one or more parquet or column-oriented files to a blob storage system.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein each metric time series in the plurality of metric time series comprises a plurality of data points, each data point including a timestamp and one or more data values; or wherein each metric time series in the plurality of metric time series includes one or more metadata values or one or more dimension values.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
generating an index of time stamps, time windows, metadata values, or dimension values associated with the plurality of metric time series; and
storing the index to the data store,
wherein identifying the selection of the one or more particular metric time series comprises querying the index for a particular time, a particular metadata value, or a particular dimension value.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising one or more of:
compacting the data points for the second subset of the plurality of metric time series recorded in the data store to reduce storage usage for the data points; or
removing data points for the second subset of the plurality of metric time series recorded in the data store upon or after expiration of a data retention window.

### Claim 7

A computing device, comprising:
a processor; and
a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations comprising:
receiving a plurality of metric time series;
identifying, based on a filtering criterion, a first subset of the plurality of metric time series for data quantization;
forwarding the first subset of the plurality of metric time series to a data quantizer system and a second subset of the plurality of metric time series to a full-fidelity storage system, the second subset of the plurality of metric time series being different than the first subset of the of the plurality of metric time series;
buffering data points for the second subset of the plurality of metric time series received during a buffering window;
upon expiration of the buffering window, recording the data points for the second subset of the plurality of metric time series to a data store;
identifying a selection of one or more particular metric time series of the second subset of the plurality of metric time series recorded in the data store;
responsive to the selection, identifying data points for the one or more particular metric time series recorded in the data store;
responsive to the selection, transmitting the data points for the one or more particular metric time series to the data quantizer system; and
combining, by an analysis engine included in the data quantizer system, the first subset of the plurality of metric time series and the data points for the one or more particular metric time series to generate an analytic data stream which identifies usage of one or more processors included in a data center, wherein the data quantizer system is further configured to: (i) associate one or more particular metric time series with occurrence of a monitored event by flagging the one or more particular metric time series, and (ii) transmit a notification to the router indicating the flagging of the one or more particular metric time series, wherein the notification causes the router to update the filtering criterion such that future data points of the one or more particular metric time series are directed by the router to the data quantizer system instead of the full-fidelity storage system.

### Claim 8 (depends on 7)

The computing device of claim 7, wherein the operations further comprise repeating the buffering and the recording a plurality of times for a plurality of additional buffering windows.

### Claim 9 (depends on 7)

The computing device of claim 7, wherein recording the data points for the second subset of the plurality of metric time series comprises packaging the data points into one or more parquet or column-oriented files and storing the one or more parquet or column-oriented files to a blob storage system.

### Claim 10 (depends on 7)

The computing device of claim 7, wherein each metric time series in the plurality of metric time series comprises a plurality of data points, each data point including a timestamp and one or more data values; or wherein each metric time series in the plurality of metric time series includes one or more metadata values or one or more dimension values.

### Claim 11 (depends on 7)

The computing device of claim 7, wherein the operations further comprise:
generating an index of time stamps, time windows, metadata values, or dimension values associated with the plurality of metric time series; and
storing the index to the data store,
wherein identifying the selection of the one or more particular metric time series comprises querying the index for a particular time, a particular metadata value, or a particular dimension value.

### Claim 12 (depends on 7)

The computing device of claim 7, wherein the operations further comprise one or more of:
compacting the data points for the second subset of the plurality of metric time series recorded in the data store to reduce storage usage for the data points; or
removing data points for the second subset of the plurality of metric time series recorded in the data store upon or after expiration of a data retention window.

### Claim 13

A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a plurality of metric time series;
identifying, based on a filtering criterion, a first subset of the plurality of metric time series for data quantization;
forwarding the first subset of the plurality of metric time series to a data quantizer system and a second subset of the plurality of metric time series to a full-fidelity storage system, the second subset of the plurality of metric time series being different than the first subset of the of the plurality of metric time series;
buffering data points for the second subset of the plurality of metric time series received during a buffering window;
upon expiration of the buffering window, recording the data points for the second subset of the plurality of metric time series to a data store;
identifying a selection of one or more particular metric time series of the second subset of the plurality of metric time series recorded in the data store;
responsive to the selection, identifying data points for the one or more particular metric time series recorded in the data store;
responsive to the selection, transmitting the data points for the one or more particular metric time series to the data quantizer system; and
combining, by an analysis engine included in the data quantizer system, the first subset of the plurality of metric time series and the data points for the one or more particular metric time series to generate an analytic data stream which identifies usage of one or more processors included in a data center, wherein the data quantizer system is further configured to: (i) associate one or more particular metric time series with occurrence of a monitored event by flagging the one or more particular metric time series, and (ii) transmit a notification to the router indicating the flagging of the one or more particular metric time series, wherein the notification causes the router to update the filtering criterion such that future data points of the one or more particular metric time series are directed by the router to the data quantizer system instead of the full-fidelity storage system.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein recording the data points for the second subset of the plurality of metric time series comprises packaging the data points into one or more parquet or column-oriented files and storing the one or more parquet or column-oriented files to a blob storage system.

### Claim 15 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the operations further comprise repeating the buffering and the recording a plurality of times for a plurality of additional buffering windows.

### Claim 16 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein each metric time series in the plurality of metric time series comprises a plurality of data points, each data point including a timestamp and one or more data values; or wherein each metric time series in the plurality of metric time series includes one or more metadata values or one or more dimension values.

### Claim 17 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the operations further comprise:
generating an index of time stamps, time windows, metadata values, or dimension values associated with the plurality of metric time series; and
storing the index to the data store,
wherein identifying the selection of the one or more particular metric time series comprises querying the index for a particular time, a particular metadata value, or a particular dimension value.

### Claim 18 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the operations further comprise one or more of:
compacting the data points for the second subset of the plurality of metric time series recorded in the data store to reduce storage usage for the data points; or
removing data points for the second subset of the plurality of metric time series recorded in the data store upon or after expiration of a data retention window.

### Claim 19 (depends on 1)

The computer-implemented method of claim 1, wherein the full-fidelity storage system is included in the computing system, the full-fidelity storage system being directly coupled to the router included in the computing system.
