Adaptive Network Response Buffering for Web Servers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Web servers lack mechanisms to adapt response buffering behavior to changing run-time characteristics of content, leading to inappropriate buffering behaviors that can violate transfer requirements or fail to utilize buffering for content types that benefit from it.
Innovation Solution
A system that maps content requests to handlers configured to serve the content, accesses buffering behavior data to determine altered response buffering behavior as exceptions to default settings, and transfers content accordingly, allowing for dynamic management of buffering based on content type, application, and runtime conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If response buffering is used to improve server performance and network bandwidth efficiency, then server performance is improved, but streaming applications and content types that cannot be buffered are adversely affected
Solution Approach 1:
The system dynamically adjusts buffering behavior based on runtime characteristics of the response. The Web server monitors response size and other runtime parameters during content generation, and automatically switches between buffering and streaming modes without requiring application-specific configuration. This dynamic adaptation allows the same server to optimize for both buffered content types (improving server performance) and streaming content types (maintaining compatibility).
Solution Approach 2:
The invention changes the buffering parameter (buffer size or buffering enabled/disabled) based on the runtime characteristics of the response. When a response exceeds a threshold size or exhibits streaming characteristics, the server modifies the buffering parameter to enable streaming behavior. This parameter adaptation resolves the contradiction by allowing buffering for small responses (improving performance) while switching to streaming for large responses (maintaining versatility).
2Ease of operation
If response buffering is configured based on prior configuration and typical characteristics, then default buffering behavior is established, but the server cannot adapt to changed run-time characteristics leading to inappropriate buffering behavior
Solution Approach 1:
The system implements feedback by monitoring runtime characteristics of the response during content generation. The Web server observes response size, content type, and generation speed, and uses this feedback to automatically adjust buffering behavior. This feedback mechanism allows the server to adapt to changing conditions without requiring complex configuration, resolving the contradiction between ease of operation and adaptability.
Solution Approach 2:
The Web server performs self-service by automatically determining the appropriate buffering strategy based on the characteristics of the content being generated. Instead of requiring external configuration for each content type, the server autonomously decides whether to buffer or stream based on runtime parameters. This self-service capability maintains configuration simplicity while achieving adaptability to different content types and conditions.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention extends to methods, systems, and computer program products for managing network response buffering behavior. A computer system receives a request for content from a client. The computer system has a default response buffering behavior used when transferring content. The computer system maps the request to a handler configured to serve the requested content. The computer system accesses buffering behavior data for the handler. The computer system determines that the requested content is to be transferred in accordance with altered response buffering behavior based at least on the buffering behavior data. The altered response buffering behavior corresponds to the requested content as an exception to the default response buffering. The computer system accesses a portion of the requested content from the handler. The computer system transfers the portion of requested content to the client in accordance with the altered response buffer behavior.