# US 11,907,165 B2 · Coordinator for preloading time-based content selection graphs

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,165 B2
- Document ID: US11907165B2
- Status: Granted
- Kind: B2
- Application number: 17/935,766
- Filed: 2022-09-27
- Published: 2023-01-19
- Granted: 2024-02-20
- Earliest claimed: 2018-12-21
- Assignees: Home Box Office, Inc.
- Applicants: Home Box Office, Inc.
- Inventors: Jonathan David Lutz; Allen Arthur Gay; Dylan Carney
- Web page: https://patentgrep.com/patent/US11907165B2

## CPC

- G06F 16/172: Caching, prefetching or hoarding of files
- H04N 21/2183: Cache memory {(caches in web servers or browsers G06F16/9574; intermediate storage and caching in data networks H04L67/568)}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 16/9574: {of access to content, e.g. by caching}
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04N 21/222: Secondary servers, e.g. proxy server, cable television Head-end {(provisioning of proxy services in data packet switching networks H04L67/56)}
- H04N 21/23106: {involving caching operations (prefetching while addressing of a memory level in which the access to the desired data or data block requires associative addressing means within memory systems or architectures G06F12/0862; caching at an intermediate stage in a data network H04L67/568)}
- H04N 21/23109: {by placing content in organized collections, e.g. EPG data repository (details of retrieval of video data and associated meta data in video databases G06F16/739)}
- H04N 21/2323: {using file mapping}
- H04N 21/2358: {for generating different versions, e.g. for different recipient devices}
- H04N 21/2405: {Monitoring of the internal components or processes of the server, e.g. server load (allocation of resources in multiprogramming arrangements G06F9/50; performance measurement of computer activity G06F11/34)}
- H04N 21/26283: {for associating distribution time parameters to content, e.g. to generate electronic programme guide data}
- H04N 21/4312: {involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations}
- H04N 21/84: Generation or processing of descriptive data, e.g. content descriptors {(systems specially adapted for using meta-information in broadcast systems H04H60/73)}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The described technology is generally directed towards coordinating the generation, validation and enabling of content selection graphs in an in-memory content selection graph data store. When a set of content selection graphs is requested, a coordinator starts the generation of the relevant graphs. Upon successful generation, the coordinator starts a validation of the generated graphs against rules for the nodes/response data in the graphs. If the generated graphs pass validation, the coordinator enables the graph set for use in an in-memory cache, whereby when a request to return content selection data is received, an active graph that corresponds to the request and the current time is accessed to obtain and return the response data as the requested content selection data.

## Claims

### Claim 1

A system, comprising:
a processor; and
a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, the operations comprising:
reading content data from a content provider and collecting, based on the reading, a timepoint defining a time that content based on the content data is to be made available to a client device;
based on the collecting of the timepoint, triggering generation of a content selection graph set based on an in-memory data store for responding to client requests, the content selection graph comprising response data at a plurality of graph nodes for responding to requests for content from the client device, the triggering resulting in a first content selection graph of the content selection graph set for responding to first client requests based on first client-specific information, and a second content selection graph of the content selection graph set for responding to second client requests based on second client-specific information;
generating the first content selection graph and the second content selection graph;
determining that generation of the content selection graph set is complete;
in response to the determining that the generation of the graph set is complete, triggering validation of the content selection graph set; and
in response to a success of the validation, loading the content selection graph set into a cache memory associated with the system.

### Claim 2 (depends on 1)

The system of claim 1, wherein the operations further comprise:
monitoring for completion of the validation of the content selection graph, and, in response to a successful validation result, mapping a first graph identifier of the first content selection graph of the content selection graph set into a mapping data store in association with a first start time, and mapping a second graph identifier of the second content selection graph of the content selection graph set into a mapping data store in association with a second start time.

### Claim 3 (depends on 2)

The system of claim 2,
wherein the first start time and the second start time are equal, and
wherein the mapping data store is part of the in-memory data store.

### Claim 4 (depends on 1)

The system of claim 1, wherein the content selection graph set is generated and validated in the in-memory data store.

### Claim 5 (depends on 1)

The system of claim 1, wherein the triggering of the generation of the content selection graph set comprises un-pausing a generation of a build data structure or a validation data structure.

### Claim 6 (depends on 1)

The system of claim 1, wherein the triggering of the validation of the content selection graph comprises triggering a validation traversal of the content selection graph, and wherein a validation traversal comprises.

### Claim 7 (depends on 1)

The system of claim 1, wherein the content selection graph set is a first content selection graph set, and wherein the operations further comprise maintaining a third graph identifier of a second content selection graph set in the mapping data store, the third graph identifier associated with a third start time.

### Claim 8 (depends on 1)

The system of claim 1, wherein the operations further comprise:
activating the graph set upon the timepoint, associated with enabling use of the graph set, having been reached; and
in response to obtaining a first client request, of the first client requests, for content or a second client request, of the second client requests, for content, the first client request or the second client request being associated with the client device, serving a content to the client device based on the activated graph set.

### Claim 9 (depends on 8)

The system of claim 8, wherein the operations further comprise:
detecting a change made to content data from a content provider, the content data corresponding to content that is to be served to a client device based upon a client request,
wherein the change detected has been made to the content, to a programming schedule corresponding to the content, or to a graph node corresponding to the content,
wherein the timepoint is based upon the change, and
wherein the triggering of the generation of the content selection graph set is performed in response to the detecting.

### Claim 10 (depends on 1)

The system of claim 1, wherein the operations further comprise:
detecting a change made to content data from a content provider, the content data corresponding to content that is to be served to a client device based upon a client request,
wherein the timepoint is based upon the change, and
wherein the triggering of the generation of the content selection graph set is performed in response to the detecting.

### Claim 11

A method, comprising:
coordinating, by a system comprising a processor, the maintaining of a graph set in an in-memory data storage, comprising:
reading, by the system, content data from a content provider and collecting, by the system, based on the reading, a timepoint defining a time that content based on the content data is to be made available to a client device;
obtaining, by the system, a start time for the graph set, which start time is based on the timepoint;
based on the collecting of the timepoint, triggering, by the system, a generation of the graph set;
generating, by the system, the graph set comprising response data at a plurality of graph nodes for responding to requests for content from the client device;
triggering, by the system, a validation of the graph set; and
in response to successful generation and validation of the graph set, loading, by the system, the graph set into a cache memory associated with the system, and mapping, by the system, a graph identifier of a generated graph of the graph set to a mapping data structure in association with the start time.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
determining, by the system, that the graph of the graph set is to be generated, based on information associated with a request to build the graph set.

### Claim 13 (depends on 12)

The method system of claim 12,
wherein the request is associated with information, and
further comprising expanding, by the system, the graph set to include the graph based on parameter data in the information, which parameter data corresponds to a parameter left unspecified by the request.

### Claim 14 (depends on 11)

The method of claim 11, further comprising:
generating, by the system, the graph identifier.

### Claim 15 (depends on 11)

The method of claim 11, further comprising:
in association with the triggering of the generation of the graph of the graph set, adding, by the system, the graph identifier to an outstanding data structure, and
in association with the mapping of the graph identifier to the mapping data structure, removing, by the system, the graph identifier from the outstanding data structure.

### Claim 16 (depends on 11)

The method of claim 11, further comprising:
activating the graph set upon the timepoint, associated with enabling use of the graph set, having been reached; and
in response to obtaining a first client request, of the first client requests, for content or a second client request, of the second client requests, for content, the first client request or the second client request being associated with the client device, serving a content to the client device based on the activated graph set.

### Claim 17

A machine-readable medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, the operations comprising:
reading content data from a content provider and collecting, based on the reading, a timepoint defining a time that content based on the content data is to be made available to a client device;
coordinating loading of a content selection graph into an in-memory storage, comprising:
receiving a request to build a content selection graph set;
determining, based on information associated with the request, a content selection graph of the content selection graph set and determining, based on the timepoint, a start time associated with the content selection graph;
generating a system-unique graph identifier for the content selection graph comprising response data at a plurality of graph nodes for responding to requests for content from the client device;
based on the collecting of the timepoint, triggering a generation of the content selection graph;
generating and validating the content selection graph;
in response to successful generation and validation of the content selection graph, loading the content selection graph into a cache memory associated with the processor; and
mapping the graph identifier of the content selection graph to a mapping data structure in association with the start time at which the content selection graph is to become active.

### Claim 18 (depends on 17)

The machine-readable storage medium of claim 17, wherein the operations further comprise:
allocating a build data structure for the purpose of use in generating the content selection graph,
wherein the build structure is within the in-memory data store.

### Claim 19 (depends on 17)

The machine-readable storage medium of claim 17,
wherein the content selection graph is a first content selection graph,
wherein the system-unique graph identifier is a first system-unique graph identifier,
wherein the generation is a first generation, and
wherein the operations further comprise determining, based on the information associated with the request, a second content selection graph of the content selection graph set,
generating a second system-unique graph identifier for the second content selection graph, triggering a second generation of the second content selection graph, and
mapping the second graph identifier of the content selection graph to a mapping data structure in association with the start time.

### Claim 20 (depends on 17)

The machine-readable medium of claim 17, wherein the operations further comprise:
activating the graph set upon the timepoint, associated with enabling use of the graph set, having been reached; and
in response to obtaining a first client request, of the first client requests, for content or a second client request, of the second client requests, for content, the first client request or the second client request being associated with the client device, serving a content to the client device based on the activated graph set.
