Predictive Application Cache for Streaming Media

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing streaming media systems face delays in application launch times due to the need for compilation and network retrieval of source code, leading to a suboptimal user experience as users expect fast access to media content.

Innovation Solution

Implementing a predictive application caching system that analyzes user interface interactions to pre-load and pre-fetch applications likely to be selected next, compiling source code into bytecode or machine code ahead of time, and storing it in cache for immediate execution, thereby reducing latency and improving launch times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If applications are loaded from network and compiled at runtime, then system memory usage is reduced, but application launch time increases

Engineering Contradiction:
Improvesystem memory usageVSAvoidapplication launch time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary actions by predicting which applications the user is likely to launch next based on current UI state and usage patterns, then proactively downloads and compiles these applications into bytecode before they are actually requested. This eliminates the runtime compilation delay while maintaining low memory usage by only caching predicted applications.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback by continuously monitoring user interactions with the UI, analyzing navigation patterns, and using this information to dynamically update predictions about which applications will be launched next. This feedback loop ensures that the predictive caching strategy adapts to actual user behavior, optimizing both memory usage and launch time.

Inventive Principle:
Principle #23Feedback

2Loss of time

If applications are pre-compiled and cached locally, then application launch time is reduced, but device storage requirements increase

Engineering Contradiction:
Improveapplication launch timeVSAvoiddevice storage requirements
Core Design Contradiction:
Loss of timeVSVolume of stationary object

Solution Approach 1:

Instead of pre-compiling all possible applications, the system performs preliminary compilation only for applications that are predicted to be launched next. This selective pre-compilation approach reduces storage requirements while still providing fast launch times for the most likely applications.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the state of applications from source code to compiled bytecode form only when needed for predicted applications. This parameter change (compilation state) is applied selectively based on prediction confidence and available storage, optimizing the balance between launch speed and storage consumption.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If the system waits for user selection before loading applications, then memory is conserved, but user experience deteriorates due to loading delays

Engineering Contradiction:
Improvememory consumptionVSAvoiduser experience
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The system takes preliminary action by anticipating user needs and loading applications before they are actually selected. This is done by analyzing the current UI context and predicting which applications the user will likely choose next, then proactively preparing them in the background without blocking the current user interaction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides self-service by autonomously monitoring UI state, making predictions about user intent, and automatically downloading and compiling applications without requiring explicit user requests. This self-service mechanism improves user experience by eliminating perceived delays while maintaining efficient memory usage.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3545421B1Predictive application caching
Publication Date: 2023.01.11 ROKU INC
  • EP3545421B1 patent drawingFigure 1A
  • EP3545421B1 patent drawingFigure 1B
  • EP3545421B1 patent drawingFigure 2

AI summary

A predictive application cache is described. The predictive application cache intelligently selects which applications to cache to maximize caching effectiveness. In an embodiment, the selecting is based on user input and a graphical user interface. The predictive application cache then determines, based on the user input and the graphical user interface, which applications are likely to be selected by user input next. In an embodiment, the selecting is also based on historical usage information. In an embodiment, the selecting is based on crowd sourced information.