Server Push Optimization Using Resource Timing Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches for using server push mechanisms, such as HTTP 2.0, often result in wasted bandwidth and inefficiency due to incorrect predictions about which resources to push to clients, as they may already have cached resources or not be needed for the current page load or transaction.

Innovation Solution

Utilizing Resource Timing (RT) data to identify and prioritize resources for server push by calculating a score based on frequency, load time, and sequence, and applying thresholding to determine which resources to pre-push, thereby optimizing page load times and reducing waste.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If server push mechanisms are used to deliver resources to clients, then page load times are improved, but bandwidth is wasted when clients already have cached resources or do not need the pushed resources

Engineering Contradiction:
Improvepage load timeVSAvoidbandwidth usage
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The system collects Resource Timing (RT) data from actual client page loads to measure real performance metrics. This feedback loop enables the system to identify which resources actually contribute to page load time and push only those resources that will genuinely improve performance, avoiding waste of bandwidth on already-cached or unnecessary resources.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary analysis of RT data to identify high-impact resources before pushing them to clients. By calculating scores based on frequency, load time, and sequence metrics in advance, the system prepares optimized push lists that target only the most beneficial resources, delivering them proactively during idle times to reduce page load time without wasting bandwidth.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If more resources are pushed to clients, then page load performance is improved, but browser cache is displaced with potentially unnecessary resources

Engineering Contradiction:
Improvepage load efficiencyVSAvoidcache utility
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system changes the parameters used to select resources for pushing by incorporating three specific metrics from RT data: frequency (how often a resource is loaded), load time (how long the resource takes to load), and sequence (the order in which resources are loaded). Resources are scored and ranked based on these parameters, and only high-scoring resources are pushed, ensuring that cache displacement only occurs for resources that provide measurable performance benefit.

Inventive Principle:
Principle #35Parameter changes

3Speed

If server push is used during active loading, then resource delivery is faster, but network congestion increases

Engineering Contradiction:
Improveresource delivery speedVSAvoidnetwork congestion
Core Design Contradiction:
SpeedVSObject-generated harmful factors

Solution Approach 1:

Instead of continuously pushing resources during active loading, the system uses periodic action by identifying idle times between page loads and pushing resources during these intervals. This approach maintains fast resource delivery by utilizing available network capacity during idle periods while avoiding the harmful effect of network congestion that would result from pushing during active loading operations.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10812580B2Using resource timing data for server push
Publication Date: 2020.10.20 AKAMAI TECHNOLOGIES INC
  • US10812580B2 patent drawing
  • US10812580B2 patent drawing
  • US10812580B2 patent drawing

AI summary

This patent document describes, among other things, methods and systems for determining which if any page resources a server might push to a client (using, e.g., an HTTP 2.0 server push mechanism). The approaches described herein improve web page load times by pushing page resources that a client is likely to need to render the base page, while reducing wasteful server pushes of resources that the client is unlikely to request from the server because, for example, they are already cached at the client.