METHOD FOR STORAGE, QUERYING, AND ANALYSIS OF TIME SERIES DATA
First Claim
1. A method for performing queries on a distributed time series data storage system having a time series database that stores data blocks containing time stamped data across a plurality of computing devices, and an index database that stores an index associated with the time stamped data in each data block, the method comprising:
- sending a query to a query layer running on a first computing device, the query specifying criteria that define a set of data to be retrieved from the time series data storage system and an analysis to be performed on the set of data;
requesting from the index database the indices associated with the data blocks stored in the time series database needed to evaluate the query;
returning the indices back to the query layer;
preparing a sub-query that will produce appropriate data matching the criteria, the sub-query including the criteria and a logical operation to be performed on the data matching the criteria;
forwarding the sub-query to an evaluator running on each of the plurality of computing devices that are identified in the returned indices as holding data corresponding to the data blocks needed to evaluate the query;
evaluating the criteria specified in the sub-query in each evaluator with respect to the data blocks stored on the same computing device on which the evaluator is running in order to select a subset of data;
performing the logical operation specified in the sub-query in each evaluator on the subset of data generated in that evaluator in the evaluating step above to generate a sub-result;
receiving each sub-result from each evaluator at an output handler; and
combining the sub-result from each evaluator into a query result.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for performing queries on a distributed time series data storage system is presented. The time series data storage system has a time series database that stores data blocks containing time stamped data across a plurality of computing devices. The system also includes an index database that stores an index associated with the time stamped data in each data block. The method includes the steps of sending a query, requesting indices, returning the indices, preparing a sub-query, forwarding the sub-query to an evaluator, evaluating the sub-query, performing a logical operation on each sub-query'"'"'s result, receiving the sub-results at an output handler, and combining the sub-results.
-
Citations
18 Claims
-
1. A method for performing queries on a distributed time series data storage system having a time series database that stores data blocks containing time stamped data across a plurality of computing devices, and an index database that stores an index associated with the time stamped data in each data block, the method comprising:
-
sending a query to a query layer running on a first computing device, the query specifying criteria that define a set of data to be retrieved from the time series data storage system and an analysis to be performed on the set of data; requesting from the index database the indices associated with the data blocks stored in the time series database needed to evaluate the query; returning the indices back to the query layer; preparing a sub-query that will produce appropriate data matching the criteria, the sub-query including the criteria and a logical operation to be performed on the data matching the criteria; forwarding the sub-query to an evaluator running on each of the plurality of computing devices that are identified in the returned indices as holding data corresponding to the data blocks needed to evaluate the query; evaluating the criteria specified in the sub-query in each evaluator with respect to the data blocks stored on the same computing device on which the evaluator is running in order to select a subset of data; performing the logical operation specified in the sub-query in each evaluator on the subset of data generated in that evaluator in the evaluating step above to generate a sub-result; receiving each sub-result from each evaluator at an output handler; and combining the sub-result from each evaluator into a query result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A tangible computer readable medium containing program instruction for execution on a general purpose computing device, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform queries on a distributed time series data storage system having a time series database that stores data blocks containing time stamped data across a plurality of computing devices, and an index database that stores an index associated with the time stamped data in each data block, the one or more processors performing said queries by carrying out the steps of:
-
sending a query to a query layer running on a first computing device, the query specifying criteria that define a set of data to be retrieved from the time series data storage system and an analysis to be performed on the set of data; requesting from the index database the indices associated with the data blocks stored in the time series database needed to evaluate the query; returning the indices back to the query layer; preparing a sub-query that will produce appropriate data matching the criteria, the sub-query including the criteria and a logical operation to be performed on the data matching the criteria; forwarding the sub-query to an evaluator running on each of the plurality of computing devices that are identified in the returned indices as holding data corresponding to the data blocks needed to evaluate the query; evaluating the criteria specified in the sub-query in each evaluator with respect to the data blocks stored on the same computing device on which the evaluator is running in order to select a subset of data; performing the logical operation specified in the sub-query in each evaluator on the subset of data generated in that evaluator in the evaluating step above to generate a sub-result; receiving each sub-result from each evaluator at an output handler; and combining the sub-result from each evaluator into a query result - View Dependent Claims (17, 18)
-
Specification