Network Application Launch Optimization via Pre-loaded Caches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network application launching processes are inefficient, leading to prolonged startup times due to delays in loading files and dependencies, especially in multi-user gaming systems where multiple instances of games need to be created, causing a bottleneck in performance.

Innovation Solution

A remote system monitors the launching process of a network application on a virtual server, identifies optimizing events, and generates data to pre-load critical files, protection software, and shader caches, allowing for optimized launching on subsequent virtual servers by executing pre-loaded commands before the application is launched.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple instances of network applications are created to serve multiple users, then user accessibility is improved, but system resource consumption and launch time increase

Engineering Contradiction:
Improveuser accessibilityVSAvoidlaunch time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary actions by pre-loading critical files, protection software, and shader caches into memory before the network application is actually launched. This allows subsequent user connections to access pre-prepared instances, significantly reducing launch time while maintaining the ability to serve multiple users simultaneously

Inventive Principle:
Principle #10Preliminary action

2Reliability

If network applications are loaded with all necessary files and dependencies, then application reliability is improved, but loading time and memory usage increase

Engineering Contradiction:
Improveapplication reliabilityVSAvoidloading time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the application loading process into critical and non-critical components. Only essential files, protection software, and shader caches are pre-loaded into memory, while other resources are loaded on-demand during runtime. This segmentation maintains application reliability by ensuring critical components are ready while reducing overall loading time and memory consumption

Inventive Principle:
Principle #1Segmentation

3Reliability

If network applications are loaded with all necessary files and dependencies, then application reliability is improved, but memory consumption increases

Engineering Contradiction:
Improveapplication reliabilityVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides application resources into segments that are loaded into memory versus those that remain on storage. Only critical files and dependencies required for immediate execution are loaded into memory, while other resources are kept on disk and loaded on-demand. This ensures application reliability by having essential components ready while controlling memory consumption through selective pre-loading

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11896899B1Techniques for providing network applications
Publication Date: 2024.02.13 AMAZON TECH INC
  • US11896899B1 patent drawing
  • US11896899B1 patent drawing
  • US11896899B1 patent drawing

AI summary

This disclosure describes, in part, techniques for providing network applications. For instance, system(s) may install a network application on a first virtual server. The system(s) may then receive first data representing events that occurred during a first launching of the network application on the first virtual server. Using the events, the system(s) may generate second data for optimizing a second launching of the network application on a second virtual server and store the second data in one or more databases. As such, after installing the network application on the second virtual server, the system(s) may provide the second virtual server with the second data so that the second virtual server may use the second data to optimize the second launching of the network application. In some examples, using the second data reduces the amount of time that it takes for the second virtual server to launch the network application.