Dual-Subset Cache for Controlled Content Release

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional caching systems struggle to prevent early release of unlicensed content and handle spikes in client requests efficiently, leading to potential data service failures and increased costs due to the need for additional infrastructure.

Innovation Solution

Implementing a cache system that maintains both current and future data subsets, where future data is only accessible after the current data expires, allowing for pre-population of future content to manage spikes in requests and prevent early data release.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional caching is used to handle client requests, then the data service can keep up with requests, but content may be released early before the intended time

Engineering Contradiction:
Improverequest handling capacityVSAvoidcontent release timing control
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system pre-loads future content into a separate future cache before it is officially released. This allows the content to be prepared in advance but kept isolated from client requests until the appropriate time, resolving the contradiction by enabling both early preparation and controlled release timing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The caching system is divided into two separate caches: current cache for released content and future cache for upcoming content. This segmentation allows independent management of each cache, enabling the system to handle requests efficiently from the current cache while preventing premature access to the future cache, thus resolving both productivity and reliability concerns.

Inventive Principle:
Principle #1Segmentation

2Reliability

If additional capacity is added below the caching level to handle request spikes, then the data service can avoid failures, but the cost increases

Engineering Contradiction:
Improveservice availability during request spikesVSAvoidinfrastructure resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary actions by loading future content into the future cache in advance of when it will be needed. This pre-positioning of data eliminates the need for additional infrastructure capacity during request spikes, as the cache is already prepared to handle the load without requiring extra below-cache resources.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of future content in the future cache before it is officially released. This copying mechanism allows the system to prepare for anticipated request spikes by having the data ready in advance, avoiding the need for additional infrastructure capacity while maintaining service reliability during high-demand periods.

Inventive Principle:
Principle #26Copying

3Reliability

If users are prevented from accessing future content, then early release is avoided, but user frustration increases when content is blocked

Engineering Contradiction:
Improvecontent protection from early viewingVSAvoiduser experience when content is blocked
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system segments content availability into current cache (accessible) and future cache (protected). This segmentation allows the system to clearly distinguish between content that should be accessible and content that should be protected, enabling reliable content protection while providing a clear interface to users about what is available now versus what will be available later.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The future cache acts as an intermediary layer between the data service and clients for upcoming content. This intermediary structure allows the system to prepare future content without exposing it to clients prematurely, while still being able to manage the transition to accessible content smoothly, thus protecting content while managing user expectations.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If the cache is refreshed frequently to prevent early release, then content protection is improved, but the system complexity increases

Engineering Contradiction:
Improvecontent expiration controlVSAvoidcache management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The cache management system is segmented into current cache management and future cache management with distinct expiration handling. This segmentation simplifies the overall complexity by allowing each cache type to have its own straightforward expiration logic, rather than requiring a single complex system to handle both current and future content expiration simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary cache management by pre-establishing expiration times for future cache entries when they are loaded. This preliminary action simplifies subsequent cache management because the expiration logic is already determined in advance, reducing the complexity of real-time cache refresh operations while maintaining reliable content protection.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3465477B1Cached data expiration and refresh
Publication Date: 2022.05.18 HOME BOX OFFICE INC
  • EP3465477B1 patent drawingFigure 1
  • EP3465477B1 patent drawingFigure 2
  • EP3465477B1 patent drawingFigure 3

AI summary

The described technology is directed towards maintaining a cache of data items, with cached data items having current value subsets and next value subsets. The cache is accessed for data item requests, to return a cache miss if a requested data item is not cached, to return data from the current value subset if not expired, to return data from the next value subset if the current value subset is expired and the next value subset is not expired, or to return a cache miss (or expired data) if both subsets are expired. Cached data items are refreshed, (e.g., periodically), when a data item's current value subset is expired by replacing the data item's current value subset with the next value subset and caching a new next value subset, or caching a new next value subset when the next value subset will expire within a threshold time.