HTTP/2 Server Request Resource Allocation via Priority Profiles

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In HTTP/2 and similar protocols, clients lack control over the server's processing and scheduling of requests within a shared connection, as priority settings do not guarantee specific processing or transmission orders, and mechanisms to enforce order are lacking.

Innovation Solution

A method and server device that allocate resources based on predefined priority parameter values, allowing clients to specify exact resource allocation for target requests, independent of other requests, using predefined processing profiles that define resource amounts for specific priority values, enabling clients to control processing priorities and pause or resume requests as needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If HTTP/2 uses a single TCP connection to exchange all requests and responses with multiplexing, then connection efficiency is improved, but client control over request processing order deteriorates

Engineering Contradiction:
Improveconnection efficiencyVSAvoidclient control over processing order
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces a new parameter (priority value) in the request header that allows clients to specify processing priorities. The server uses this parameter to determine resource allocation and processing order, resolving the contradiction by enabling control through parameter specification rather than connection management.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If HTTP/2 allows intermingling of request and response parts within the same connection, then multiplexing capability is improved, but request processing control deteriorates

Engineering Contradiction:
Improvemultiplexing capabilityVSAvoidrequest processing control
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent adds priority parameters to request headers that enable clients to control processing order despite the interleaved nature of HTTP/2 multiplexed streams. The server processes requests based on these parameters, maintaining control capability while preserving multiplexing benefits.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If priority parameter values are used to express relative priority of streams, then resource allocation flexibility is improved, but guaranteed processing order deteriorates

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidguaranteed processing order
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary action by allocating resources in advance based on priority values before requests are processed. The server performs resource allocation upfront according to the priority parameters in request headers, ensuring that high-priority requests have guaranteed resources available when needed, thus providing both flexibility and reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10084882B2Method for processing requests and server device processing requests
Publication Date: 2018.09.25 CANON KK
  • US10084882B2 patent drawing
  • US10084882B2 patent drawing
  • US10084882B2 patent drawing

AI summary

The invention relates to a server and a method for processing requests when several requests compete within the same connection having fixed resources. Conventionally, a priority scheme provides priority values for a priority parameter that express priorities relatively to the priorities of other requests, meaning that a relative allocation of resources is obtained for each request. To achieve a better control on the server by the client, the invention provides specific possible values for the priority parameter that correspond to respective processing profiles. Each processing profile represents specific server behavior for resources allocation, by defining a predefined amount of resources. Thus, the client may choose between using the specific possible values to control the exact amount of resources that will be allocated by the server to process some specific requests, and using the other possible values that correspond to a relative allocation of resources as already done in known techniques.