IP Library › Granted Patent US 12,549,460
Granted Patent B1
US 12,549,460 · App. 18/431,757 · Granted Feb 10, 2026

Timeline framework for time-state analytics

Inventors: Henry Milner (Burlingame, CA); Oleg Puzyrko (San Mateo, CA); Jibin Zhan (San Mateo, CA); Hui Zhang (Burlingame, CA); Akara Sucharitakul (Foster City, CA); Vyas Sekar (Foster City, CA); Yihua Cheng (Chicago, IL)
Assignee: Conviva Inc.
H04L43/067H04L43/045
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,549,460
App. No.
18/431,757
Granted
Feb 10, 2026
Kind
B1
Abstract

Determining a time-state metric includes receiving a stream of raw data values of an attribute. Each received raw data value of the attribute is associated with a timestamp. It further includes converting the received stream of raw data values into a timeline representation of the attribute over time. The timeline representation comprises a sequence of spans. A span comprises a span start time, a span end time, and a span value. The span value comprises an encoding of one or more values of the attribute over a time interval determined by the span start time and the span end time. It further includes determining a time-state metric according to a timeline request configuration. The timeline request configuration comprises one or more timeline operations. The time-state metric is computed at least in part by performing a timeline operation on the timeline representation of the attribute.

Claims (32)

1 . A system, comprising:

one or more processors configured to:

receive a stream of raw data values of an attribute recorded at discrete points in time, wherein each received raw data value of the attribute is associated with a timestamp;

convert the received stream of raw data values into a timeline representation of the attribute over time, wherein the timeline representation comprises a sequence of spans, wherein a span comprises a span start time, a span end time, and a span value, and wherein the span value comprises an encoding of one or more values of the attribute over a time interval determined by the span start time and the span end time, and wherein when a change in value of the attribute is detected from the stream of raw data values, a current span is closed and a new span is generated; and

determine a time-state metric according to a timeline request configuration, wherein the timeline request configuration comprises one or more timeline operations, and wherein the time-state metric is computed at least in part by performing a timeline operation on the timeline representation of the attribute; and

a memory coupled to the one or more processors and configured to provide the one or more processors with instructions.

2 . The system recited in claim 1 , wherein the stream of raw data values comprises a first value of the attribute associated with a first time and a second value of the attribute associated with a second time.

3 . The system recited in claim 2 , wherein based at least in part on a determination that the second value of the attribute is different from the first value, the one or more processors are configured to update the current span, wherein the span start time comprises the first time, the span end time comprises a time value prior to the second time, and the span value comprises the first value.

4 . The system recited in claim 2 , wherein based at least in part on a determination that the second value of the attribute is different from the first value, the one or more processors are configured to generate the new span, wherein a span start time of the new span comprises the second time.

5 . The system recited in claim 1 , wherein the one or more processors are further configured to encode and export a metric value of the time-state metric.

6 . The system recited in claim 1 , wherein the one or more timeline operations comprised in the timeline request configuration are represented using a graph representation.

7 . The system recited in claim 6 , wherein the graph representation comprises a plurality of nodes, and wherein a node comprises the timeline operation.

8 . The system recited in claim 6 , wherein the graph representation comprises a directed acyclic graph.

9 . The system recited in claim 1 , wherein the timeline operation is configured to take as input one or more input timeline representations and provide as output one or more output timeline representations.

10 . The system recited in claim 1 , wherein determining the time-state metric comprises combining timeline representations of two or more different attributes.

11 . A method, comprising:

receiving a stream of raw data values of an attribute recorded at discrete points in time, wherein each received raw data value of the attribute is associated with a timestamp;

converting the received stream of raw data values into a timeline representation of the attribute over time, wherein the timeline representation comprises a sequence of spans, wherein a span comprises a span start time, a span end time, and a span value, and wherein the span value comprises an encoding of one or more values of the attribute over a time interval determined by the span start time and the span end time, and wherein when a change in value of the attribute is detected from the stream of raw data values, a current span is closed and a new span is generated; and

determining a time-state metric according to a timeline request configuration, wherein the timeline request configuration comprises one or more timeline operations, and wherein the time-state metric is computed at least in part by performing a timeline operation on the timeline representation of the attribute.

12 . The method of claim 11 , wherein the stream of raw data values comprises a first value of the attribute associated with a first time and a second value of the attribute associated with a second time.

13 . The method of claim 12 , wherein based at least in part on a determination that the second value of the attribute is different from the first value, updating the current span, wherein the span start time comprises the first time, the span end time comprises a time value prior to the second time, and the span value comprises the first value.

14 . The method of claim 12 , wherein based at least in part on a determination that the second value of the attribute is different from the first value, generating the new span, wherein a span start time of the new span comprises the second time.

15 . The method of claim 11 , further comprising encoding and exporting a metric value of the time-state metric.

16 . The method of claim 11 , wherein the one or more timeline operations comprised in the timeline request configuration are represented using a graph representation.

17 . The method of claim 16 , wherein the graph representation comprises a plurality of nodes, and wherein a node comprises the timeline operation.

18 . The method of claim 16 , wherein the graph representation comprises a directed acyclic graph.

19 . The method of claim 11 , wherein the timeline operation is configured to take as input one or more input timeline representations and provide as output one or more output timeline representations.

20 . The method of claim 11 , wherein determining the time-state metric comprises combining timeline representations of two or more different attributes.

21 . A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

receiving a stream of raw data values of an attribute recorded at discrete points in time, wherein each received raw data value of the attribute is associated with a timestamp;

converting the received stream of raw data values into a timeline representation of the attribute over time, wherein the timeline representation comprises a sequence of spans, wherein a span comprises a span start time, a span end time, and a span value, and wherein the span value comprises an encoding of one or more values of the attribute over a time interval determined by the span start time and the span end time, and wherein when a change in value of the attribute is detected from the stream of raw data values, a current span is closed and a new span is generated; and

determining a time-state metric according to a timeline request configuration, wherein the timeline request configuration comprises one or more timeline operations, and wherein the time-state metric is computed at least in part by performing a timeline operation on the timeline representation of the attribute.

Continuity (2)
Continuation 18241121 · Aug 31, 2023
Provisional Application 63403262 · Sep 1, 2022
References Cited (26)
US 6473407B1 · Ditmer · 2002 [cited by examiner]
US 6473794B1 · Guheen · 2002 [cited by examiner]
US 11250069B1 · Bianchi · 2022 [cited by applicant]
US 11388211B1 · Breeden · 2022 [cited by examiner]
US 11516269B1 · Chang, Jr. · 2022 [cited by applicant]
US 11526425B1 · Karis · 2022 [cited by applicant]
US 20020052941A1 · Patterson · 2002 [cited by examiner]
US 20020095487A1 · Day · 2002 [cited by examiner]
US 20020103889A1 · Markson · 2002 [cited by examiner]
US 20020149601A1 · Rajarajan · 2002 [cited by examiner]
US 20020149615A1 · Rajarajan · 2002 [cited by examiner]
US 20020161876A1 · Raymond · 2002 [cited by examiner]
US 20020161885A1 · Childers · 2002 [cited by examiner]
US 20160216873A1 · Filippi · 2016 [cited by applicant]
US 20170132523A1 · Zhang · 2017 [cited by applicant]
Adams et al. 2020. Monarch: Google's planet-scale in-memory time series database. Proceedings of the VLDB Endowment 13, 12 (2020), 3181-3194. [cited by applicant]
Akidau et al. 2015. The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out of-Order Data Processing. Proceedings of the VLDB Endowment 8 (2015), 1792-1803. [cited by applicant]
Armbrust et al. 2015. Spark SQL: Relational Data Processing in Spark. In Proc. ACM SIGMOD. [cited by applicant]
Carbone et al. 2015. Apache flink: Stream and batch processing in a single engine. Bulletin of the IEEE Computer Society Technical Committee on Data Engineering 36, 4 (2015). [cited by applicant]
Etzion et al. 2006. Event-Driven Architectures and Complex Event Processing. In 2006 IEEE International Conference on Services Computing (SCC'06). xxx-xxx. https://doi.org/10.1109/SCC.2006.49. [cited by applicant]
Gencer et al. 2021. Hazelcast Jet: Low-latency Stream Processing at the 99.99th Percentile. https://doi.org/10.48550/ARXIV.2103.10169. [cited by applicant]
Hirzel et al. 2014. A Catalog of Stream Processing Optimizations. ACM Comput. Surv. 46, 4, Article 46 (Mar. 2014), 34 pages. https://doi.org/10.1145/2528412. [cited by applicant]
Jain et al. 2008. Towards a Streaming SQL Standard. Proc. VLDB Endow. 1, 2 (Aug. 2008), 1379-1390. https://doi.org/10.14778/1454159.1454179. [cited by applicant]
Pelkonen et al. 2015. Gorilla: A Fast, Scalable, in-Memory Time Series Database. Proc. VLDB Endow. 8, 12 (Aug. 2015), 1816-1827. https://doi.org/10.14778/2824032.2824078. [cited by applicant]
Zaharia et al. 2013. Discretized Streams: Fault-Tolerant Streaming Computation at Scale. In Proc. SOSP. [cited by applicant]
Zaharia et al. 2012. Spark: Cluster Computing with Working Sets. In Proc. NSDI. [cited by applicant]