A non-transitory, computer-readable medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
- obtaining data observations associated with respective time occurrences associated with a monitored process executed on a platform system, wherein the respective time occurrences are spaced in time from each other with irregular time intervals;
- analyzing a distribution of the respective time occurrences associated with the data observations to identify a cyclic pattern, wherein the analyzing comprises:
- defining a list of time gaps, wherein a time gap is defined as a difference between each two consecutive data observations from a set of consecutive data observations, a number of consecutive data observations in the set being defined according to a time measure for the list, and wherein each time gap in the list of time gaps is associated with a respective data observation;
- iteratively evaluating, as evaluated time gaps, lists of time gaps associated with data observations using two reader operators that separately browse through the lists of time gaps, wherein each of the two reader operators start from a respective position in the data observations, the respective positions where the two reader operators start being subsequent to one another, wherein each reader operator identifies, for each evaluated time gap of the evaluated time gaps, subsequent time gaps after each evaluated time gap of the evaluated time gaps, wherein the iteratively evaluating is performed to determine a cycle in the list of time gaps that comprises a cyclic set of the subsequent time gaps of the list of time gaps that is repetitive in the list of time gaps, and wherein the iterative evaluation of the time gaps using the two reader operators comprises:
- performing iterative evaluation using two respective moving pointers through the time gaps of the list of time gaps to determine, at each iteration of each moving pointer, one or more sets of subsequent time gaps of the list of time gaps, wherein the two respective moving pointers are associated with a different iterative step between time gaps in the list of time gaps, and wherein the cycle is determined when the cyclic set of subsequent time gaps is identified at a correspondingly iteratively evaluated time gap by each of the two reader operators;
- and
- identifying, as an identified cyclic pattern, a cyclic pattern in the list of time gaps based on the iteratively evaluating, wherein the identifying comprises identifying (i) a length of cycle within the cycle patterns and (ii) an index element of a time gap of the list of time gaps that is associated with a start element of a first cycle identified in the list of time gaps;
- performing a data analysis over the data observations according to the identified cyclic pattern to generate a prediction model to predict future data observations;
- in response to receiving a request to predict a future horizon,
- executing the prediction model to obtain prediction result for the future horizon, and
- generating instructions including an adjustment of the execution of the monitored process for the future horizon according to the prediction result;
- and
- providing the instructions to the platform system.