System for organizing and fast searching of massive amounts of data
AssigneeCumulus Systems Inc.
InventorsAjit Bhave, Arun Ramachandran, Sai Krishnam Raju Nadimpalli, Sandeep Bele
Life of this patent
Estimating the term…
Loading patent…
AssigneeCumulus Systems Inc.
InventorsAjit Bhave, Arun Ramachandran, Sai Krishnam Raju Nadimpalli, Sandeep Bele
Estimating the term…
A system to collect and store in a special data structure arranged for rapid searching massive amounts of data. Performance metric data is one example. The performance metric data is recorded in time-series measurements, converted into unicode, and arranged into a special data structure having one directory for every day which stores all the metric data collected that day. The data structure at the server where analysis is done has a subdirectory for every resource type. Each subdirectory contains text files of performance metric data values measured for attributes in a group of attributes to which said text file is dedicated. Each attribute has its own section and the performance metric data values are recorded in time series as unicode hex numbers as a comma delimited list. Analysis of the performance metric data is done using regular expressions.
A server having or coupled to memory, and having a programmable processor and one or more computer programs stored in said memory and structured to control operations of said programmable processor, to cause said server to implement a query definition language having rules of syntax and syntax building blocks and to provide a user interface which a user can use to specify a relevant interval and to compose a search query using said syntax building blocks and said rules of syntax, and wherein said memory separately stores configuration data and time series of Unicode characters, each said time series of Unicode characters representing a time series of performance metric data numerical values, each performance metric data numerical value having been measured or collected from a system being monitored during one timeslot of a day having a date, said timeslots spanning an entire day, each time series string of performance metric data numerical values characterizing the changes over time of one or more attributes of one of one or more resources of said system being monitored, each said resource having a resource type, and wherein said configuration data characterizes configuration of resources of said system being monitored, and wherein said one or more computer programs are structured to map each numerical values in a time series of performance metric data numerical values to a Unicode character and store each said Unicode characters in a time series of Unicode characters at a position in said memory which maps to the timeslot during which said numerical value was measured or gathered, and wherein said one or more computer programs are further structured to control said server to implement said query definition language and said rules of syntax and said syntax building blocks so as to:
A computer having or coupled to a memory and having a non relational database file system having a data structure and stored in said memory, said computer having a programmable processor controlled by one or more computer programs which are structured to control said computer to provide a user interface, said memory separately storing configuration attribute data and performance metric attribute data of one or more attributes of one or more instances of one or more resource types, said performance metric attribute data comprised of numerical values, each numerical value measured or gathered on a day having a date and during a particular time slot of said day and each of said configuration attributes having an identity, each said performance metric attribute numerical values measured or collected from one performance metric attribute of one of said instances of said one or more resource types, and each of said instances of a resource type having an identity, said one or more computer programs structured to control said computer to map each said performance metric attribute data numerical value into a Unicode character which has metadata, said metadata being comprised of the date and time slot during which said numerical value mapped to said Unicode character was gathered or measured and said identity of said performance metric attribute of which said numerical value was a measure of and said identity of said instance of said resource type from which said numerical value was measured or gathered, all of said metadata of each said Unicode character recorded in said memory by encoding said metadata into the structure of said data structure of said non relational database file system, and wherein said one or more computer programs is further structured to control said computer to present said user interface and to implement a query definition language having rules of syntax and having syntax building blocks which enable said user to use said user interface to define a relevant interval and to construct a search query having one or more searches defined therein on a first level of nesting, each said search specifying a configuration attribute or a performance metric attribute whose data is to be searched and each said search having a regular expression which expresses a desired filtering or matching condition, said one or more computer programs further structured to control said computer to provide syntax building blocks and said rules of syntax of said query definition language so as to allow said user to define a first search on said first level of nesting which will be performed on configuration attribute data or performance metric attribute data of a specified configuration or performance metric attribute of all instances of a resource type specified in said first search on said first level of nesting, and wherein said rules of syntax and said syntax building blocks allow said user to specify a second search on said first level of nesting which will be performed on configuration attribute data or performance metric attribute data of a configuration or performance metric attribute specified in said second search of all instances of said resource type specified in said first search on said first level of nesting which were returned by said first search as having configuration data or performance metric attribute data which met said filter or matching condition of said first search on said first level of nesting, said one or more computer programs further structured to control said computer to carry out each said search on said first level of nesting which is not said first search by retrieving relevant data comprising configuration data or performance metric attribute data from said memory which was gathered or measured during said relevant interval from the configuration attribute or performance metric attribute specified in said search being processed from instances of said resource type named in said first search on said first level of nesting whose configuration data or performance metric data met said filter or matching conditions specified in said first search and all intervening searches on said first level of nesting between said first search and said search being processed and applying said filter condition specified in said regular expression of said search being processed to said relevant data and returning any instances of said resource type specified in said first search which meet said filter condition of said search being processed and pass only those instances which pass said filter or matching criteria specified in said regular expression of said search being processed on to any additional search defined in said search query on said first level of nesting by said user such that only configuration attribute data or performance metric attribute data specified in said search being processed and gathered during said relevant interval only from said instances returned by a search just preceding said search being processed are compared to said filter or matching condition specified in said search being processed and so on for all searches specified in said search query on said first level of nesting such that each search compares the filter or matching condition specified in said regular expression specified therein to data from instances which passed all searches on said first level of nesting preceding said search being processed.
A computer having user interface devices including at least a display and a keyboard, and having memory separately storing configuration data and performance metric data of one or more configuration attributes and one or more performance metric data attributes of one or more instances of one or more resource types being monitored, said performance metric data comprising one or more time series of performance metric data numerical values of said one or more performance metric data attributes of said one or more instances of said one or more resource types being monitored, each said numerical value in each said time series of performance metric data numerical values having been converted to a Unicode character, said data organized as a non relational database file system stored in said memory, said computer having a programmable processor coupled to said user interface devices and said memory and under control of one or more computer programs to control said computer, said one or more computer programs structured to control said computer to implement a query definition language having rules of syntax and syntax building blocks, said one or more computer programs structured to control said computer to present a search query user interface where a user can define the start and stop times of a relevant interval and use said syntax building blocks and said rules of syntax to compose a search query defining one or more desired searches of said configuration data and/or said Unicode characters representing said performance metric data numerical values using a regular expression in each search which defines a match or filter condition to be matched or compared with relevant data retrieved from said memory, and wherein said one or more computer programs are structured to control said computer to provide reverse mapping syntax building blocks which a user can use to search said Unicode characters using a number or numerical range in a regular expression matching or filtering criteria, the use of a number or numerical range being made possible in a search because said one or more computer programs are structured to control said computer to convert any such number or numerical range in a regular expression matching or filtering criteria to an equivalent Unicode character or set of Unicode characters which will be used to match or compare to said relevant data comprising Unicode characters when performing said search containing said number or numerical range.
Dependencies are inferred from the claim text.