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.