HyperLock technique for high-speed network data monitoring
First Claim
1. A method for monitoring network traffic, the method implemented on a computer, the method comprising:
- generating two or more index tables associated with two or more time intervals, each index table comprising a set of pointers to a corresponding set of storage locations storing traffic data captured over the time interval associated with the index table, the traffic data in each set of storage locations organized in a plurality of tuples with associated network traffic measures, each tuple including a set of dimension values uniquely identifying network communications between two end-points, wherein the set of pointers are sorted in an order based on at least one of the dimension values in the tuples for the traffic data captured over the interval of time corresponding to the index table; and
in response to a query with respect to a dimension requesting a time aggregated result based on the network traffic measures, aggregating partial results based on network traffic measures into the time aggregated result by accessing the storage locations storing traffic data captured over different time intervals following the order of the pointers in each index table, the aggregating performed by a processor of the computer, the aggregating further comprising;
following the order of the pointers in a first index table associated with a first time interval as long as a dimension value pointed to by each pointer is a specified dimension value; and
upon reaching a pointer in the first index table pointing to a new dimension value different from the specified dimension value, following the order of the pointers in a second index table corresponding to a second time interval as long as a dimension value pointed to by each pointer is the specified dimension value.
3 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a network architecture includes a plurality of application monitoring modules for monitoring network traffic data in a plurality of network segments. Network monitoring modules include a staging area that receives network traffic data from a packet capture and analysis engine and an indexing area that stores the data in meta-flow tuples with associated measures divided into time interval buckets. Index tables store dimension-based sorted pointers to the storage locations in the data buckets. HyperLock queries collect time aggregated results for measure based operators with respect to a queried dimension. For each value of the queried dimension, the time interval buckets are traversed compiling a partial result that is finally stored in a stack as the time aggregated value. The stored sorted pointers are used to determine the starting location in each bucket with respect to the next value of the queried dimension.
132 Citations
22 Claims
-
1. A method for monitoring network traffic, the method implemented on a computer, the method comprising:
-
generating two or more index tables associated with two or more time intervals, each index table comprising a set of pointers to a corresponding set of storage locations storing traffic data captured over the time interval associated with the index table, the traffic data in each set of storage locations organized in a plurality of tuples with associated network traffic measures, each tuple including a set of dimension values uniquely identifying network communications between two end-points, wherein the set of pointers are sorted in an order based on at least one of the dimension values in the tuples for the traffic data captured over the interval of time corresponding to the index table; and in response to a query with respect to a dimension requesting a time aggregated result based on the network traffic measures, aggregating partial results based on network traffic measures into the time aggregated result by accessing the storage locations storing traffic data captured over different time intervals following the order of the pointers in each index table, the aggregating performed by a processor of the computer, the aggregating further comprising; following the order of the pointers in a first index table associated with a first time interval as long as a dimension value pointed to by each pointer is a specified dimension value; and upon reaching a pointer in the first index table pointing to a new dimension value different from the specified dimension value, following the order of the pointers in a second index table corresponding to a second time interval as long as a dimension value pointed to by each pointer is the specified dimension value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 21, 22)
-
-
10. A computer based system for monitoring network traffic comprising:
-
means for generating two or more index tables associated with two or more time intervals, each index table comprising a set of pointers to a corresponding set of storage locations storing traffic data captured over the time interval associated with the index table, the traffic data in each set of storage locations organized in a plurality of tuples with associated network traffic measures, each tuple including a set of dimension values uniquely identifying network communications between two end-points, wherein the set of pointers are sorted in an order based on at least one of the dimension values in the tuples for the traffic data captured over the interval of time corresponding to the index table; means for receiving a query with respect to a dimension requesting a time aggregated result based on the network traffic measures; and means for aggregating partial results based on network traffic measures into the time aggregated result by accessing the storage locations storing traffic data captured over different time intervals following the order of the pointers in each index table, the means for aggregating a partial result coupled to the means for receiving a query for aggregating the partial results in response to receiving the query, the means for aggregating comprising hardware, the aggregating further comprising; following the order of the pointers in a first index table associated with a first time interval as long as a dimension value pointed to by each pointer is a specified dimension value; and upon reaching a pointer in the first index table pointing to a new dimension value different from the specified dimension value, following the order of the pointers in a second index table corresponding to a second time interval as long as a dimension value pointed to by each pointer is the specified dimension value.
-
-
11. A computer readable storage medium for monitoring network traffic comprising:
-
computer program instructions for generating two or more index tables associated with two or more time intervals, each index table comprising a set of pointers to a corresponding set of storage locations storing traffic data captured over the time interval associated with the index table, the traffic data in each set of storage locations organized in a plurality of tuples with associated network traffic measures, each tuple including a set of dimension values uniquely identifying network communications between two end-points, wherein the set of pointers are sorted in an order based on at least one of the dimension values in the tuples for the traffic data captured over the interval of time corresponding to the index table; and computer program instructions for, in response to a query with respect to a dimension requesting a time aggregated result based on the network traffic measures, aggregating partial results based on network traffic measures into the time aggregated result by accessing the storage locations storing traffic data captured over different time intervals following the order of the pointers in each index table, the aggregating further comprising; following the order of the pointers in a first index table associated with a first time interval as long as a dimension value pointed to by each pointer is a specified dimension value; and upon reaching a pointer in the first index table pointing to a new dimension value different from the specified dimension value, following the order of the pointers in a second index table corresponding to a second time interval as long as a dimension value pointed to by each pointer is the specified dimension value.
-
-
12. A network monitoring appliance for monitoring network traffic comprising:
-
a network data staging area configured to receive network traffic data from a packet classification and analysis engine in two or more time based data storage buckets, wherein the data storage buckets are associated with a timer for rotating the data storage buckets over time; a network data indexing area comprising sets of storage locations for storing traffic data captured over a plurality of time intervals, the indexing area coupled to the staging area for periodically updating the traffic data in a current bucket within a time period, the indexing area further configured to store two or more index tables associated with two or more time intervals, each index table for storing a set of pointers to a corresponding set of storage locations; and a processing unit configured to receive a query from a monitoring console, the query referenced with respect to a query dimension and requesting a time aggregated result based on network traffic measures stored in the storage locations, the processing unit for aggregating partial results from each of a plurality of sets of storage locations, the partial results associated with a value for the query dimension, wherein the processing unit accesses each of the plurality of storage locations based on the pointers in the two or more index tables, the aggregating further comprising; following the order of the pointers in a first index table associated with a first time interval as long as a dimension value pointed to by each pointer is a specified dimension value; and upon reaching a pointer in the first index table pointing to a new dimension value different from the specified dimension value, following the order of the pointers in a second index table corresponding to a second time interval as long as a dimension value pointed to by each pointer is the specified dimension value. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification