Anticipatory Preprocessing for Server Application Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Client-server software applications experience delays due to server processing time, leading to user dissatisfaction and potential abandonment of applications.

Innovation Solution

Implement anticipatory preprocessing by servers to generate and transmit additional application states based on expected finite client responses, reducing latency by preparing states before actual user input is received.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the server processes client requests in real-time, then processing accuracy is maintained, but latency increases causing user dissatisfaction

Engineering Contradiction:
ImprovelatencyVSAvoidserver processing complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The server performs preliminary processing by generating additional application states in advance based on anticipated client responses. When a client sends a request, the server checks if pre-generated states are available and returns them immediately, eliminating the need for real-time processing and reducing latency.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If the server generates additional states in advance, then latency is reduced, but server load increases

Engineering Contradiction:
Improveprocessing timeVSAvoidserver computational resources
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

Instead of generating all possible application states in advance, the server selectively generates only those states that are likely to be requested by the client. This partial preprocessing approach reduces computational overhead while still achieving latency reduction for the most probable scenarios.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system implements a caching mechanism where previously generated application states are stored and reused for subsequent requests. This self-service approach allows the server to avoid regenerating states that have already been computed, reducing redundant computational work.

Inventive Principle:
Principle #25Self-service

3Speed

If the server stores multiple pre-generated states, then response speed increases, but memory consumption increases

Engineering Contradiction:
Improveresponse speedVSAvoidserver memory
Core Design Contradiction:
SpeedVSVolume of stationary object

Solution Approach 1:

The server extracts and stores only the essential application states that are most likely to be requested, rather than maintaining all possible states in memory. This selective extraction approach reduces memory consumption while preserving the ability to provide fast responses for anticipated requests.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP2700023B1Reducing latency for served applications by anticipatory preprocessing
Publication Date: 2021.05.26 DISH TECHNOLOGIES LLC
  • EP2700023B1 patent drawingFigure 1
  • EP2700023B1 patent drawingFigure 2
  • EP2700023B1 patent drawingFigure 3A

AI summary

A server that hosts an application transmits a state of the application to a client. The server determines that a response to the state is expected and that the response will be one of a finite number of possible responses. The server then generates one or more additional states utilizing at least one possible response from the finite set and provides the additional state(s) to the client. In some implementations, the server provides the additional state when the response is actually received. However, in other implementations, the server provides the additional state when generated and the client presents it when user input that equals the response is received. Additionally, in various implementations, the server may generate an additional state for each of the possible responses. However, in various other implementations, the server may generate additional states for a selected number of the possible responses.