IP Library Granted Patent US 10,769,160
Granted Patent B2
US 10,769,160 · App. 15/655,608 · Granted Sep 8, 2020

Efficient storage and querying of time series metrics

Inventor: Peter Reilly (Colorado Springs, CO)
Assignee: AirMagnet, Inc.
G06F16/2477G06F11/3006G06F11/3419G06F16/2219G06F16/2237G06F16/2264G06F16/2282H04L43/067H04L43/08H04L41/5009H04L43/045
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,769,160
App. No.
15/655,608
Granted
Sep 8, 2020
Kind
B2
Abstract

A method for processing time series measurement data is provided. Data including a plurality of network performance metrics is received over a plurality of time periods. The received data is written to a plurality of measure data structures. The measure data structures are stored to a two dimensional array having a first dimension and a second dimension. The first dimension represents time and the second dimension represents a plurality of network entities. Elements of the two-dimensional array are compressed into BLOBs. Each one of the BLOBS is associated with a time period and a measure type associated with the data stored within a corresponding BLOB. The BLOBS are stored in a first table and second table. The first table is indexed by a combination of a network entity and a time period. The second table is indexed by a combination of a network performance metric and a network entity.

Claims (32)

1. A method for processing time series measurement data, the method comprising:

receiving time series measurement data comprising a plurality of network performance metrics over a plurality of time periods for a plurality of network entities, wherein each network performance metric measures performance of a network entity of the plurality of network entities;

writing the received time series measurement data for the plurality of network entities to a plurality of measure data structures comprising the plurality of network performance metrics, each one of the plurality of measure data structures stores time series measurement data corresponding to a respective network entity for a respective one of the time periods, each one of the plurality of measure data structures includes a header indicating a type of stored metric values and the time period associated with the time series measurement data stored within a corresponding measure data structure;

storing the plurality of measure data structures to a data structure configured as a two dimensional array having a first dimension and a second dimension, wherein the first dimension represents time and the second dimension represents a plurality of network entities, each element of the two dimensional array comprising a respective measure data structure;

compressing the elements of the two-dimensional array into a first plurality of Binary Large Objects (BLOBs) and a second plurality of BLOBs;

storing the first plurality of BLOBS in a first table, wherein the first table is indexed by a combination of a network entity and a time period and wherein each of the first plurality of BLOBs contains all the metric values collected over a time period for a particular network of the plurality of network entities being monitored; and

storing the second plurality of BLOBs in a second table, wherein the second table is indexed by a combination of a network performance metric and a network entity and wherein each of the second plurality of BLOBs holds the values of a particular performance metric for all of the entities of the plurality of network entities for a particular time period.

2. The method of claim 1 , wherein each of the plurality of network performance metrics is associated with a unique integer identifier and is associated with a metric type identifier.

3. The method of claim 2 , wherein the metric type identifier identifies at least one of: maximum, minimum, average, bitmap, and histogram types of performance metrics.

4. The method of claim 1 , wherein each of the plurality of measure data structures is stored in an array of unsigned long integers.

5. The method of claim 1 , wherein the first dimension of the two dimensional array represents a predefined number of minutes and the second dimension of the two dimensional array represents a predefined number of network entities.

6. A system for storing and retrieving time series measurement data, the system comprising:

a metric collection engine for acquiring a plurality of network performance metrics and events related to performance of a plurality of network entities in a monitored network;

a storage repository comprising a first table and a second table for storing the plurality of network performance metrics; and

an information processing system comprising a processor and a memory device coupled to the processor in communication with the metric collection engine and with the storage repository, the memory device containing a set of instructions that, when executed by the processor, cause the processor to:

receive, from the metric collection engine, time series measurement data comprising the plurality of network performance metrics for the plurality of network entities over a plurality of time periods, wherein each network performance metric measures performance of a network entity of the plurality of network entities;

write the received time series measurement data for the plurality of network entities to a plurality of measure data structures comprising the plurality of network performance metrics, each one of the plurality of measure data structures stores time series measurement data corresponding to a respective network entity for a respective one of the time periods, each one of the plurality of measure data structures includes a header indicating a type of stored metric values and the time period associated with the time series measurement data stored within a corresponding measure data structure;

store the plurality of measure data structures to a data structure configured as a two dimensional array having a first dimension and a second dimension, wherein the first dimension represents time and the second dimension represents a plurality of network entities, each element of the two dimensional array comprising a respective measure data structure;

compress the elements of the two-dimensional array into a first plurality of Binary Large Objects (BLOBs) and a second plurality of BLOBs;

store the first plurality of BLOBS in the first table, wherein the first table is indexed by a combination of a network entity and a time period and wherein each of the first plurality of BLOBs contains all the metric values collected over a time period for a particular network of the plurality of network entities being monitored; and

store the second plurality of BLOBs in a second table, wherein the second table is indexed by a combination of a network performance metric and a network entity and wherein each of the second plurality of BLOBs holds the values of a particular performance metric for all of the entities of the plurality of network entities for a particular time period.

7. The system of claim 6 , wherein each of the plurality of network performance metrics is associated with a unique integer identifier and is associated with a metric type identifier.

8. The system of claim 7 , wherein the metric type identifier identifies at least one of: maximum, minimum, average, bitmap, and histogram types of performance metrics.

9. The system of claim 6 , wherein each of the plurality of measure data structures is stored in an array of unsigned long integers.

10. The system of claim 6 , wherein the first dimension of the two dimensional array represents a predefined number of minutes and the second dimension of the two dimensional array represents a predefined number of network entities.

11. The system of claim 6 , wherein the set of instructions that, when executed by the processor, further cause the processor to:

receive, from a user, one or more query parameters, the query parameters comprising at least network performance metrics of interest, a time period of interest and network entities of interest;

retrieve elements from the second table based on the received query parameters;

sort the retrieved elements and extract one or more elements corresponding to the network entities of interest; and

retrieve elements from the first table based on the received query parameters.

12. The system of claim 6 further comprising a graphical user interface (GUI), wherein the user provides the one or more query parameters using the GUI.

13. The system of claim 6 , wherein the two dimensional array stores data accumulated for one hour.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: AIRMAGNET, INC.
To: NETSCOUT SYSTEMS, INC.
Reel/Frame 057595/0428 →
SECURITY INTEREST Recorded Jul 27, 2021
From: NETSCOUT SYSTEMS, INC.; ARBOR NETWORKS, INC.; AIRMAGNET, INC.; NETSCOUT SYSTEMS TEXAS, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 056997/0847 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2017
From: REILLY, PETER
To: AIRMAGNET, INC.
Reel/Frame 043943/0241 →