Browse Prior Art Database

A method to handle cached static GET requests from in-kernel GET Engine in presence of non-cached requests over HTTP 1.1 connections.

IP.com Disclosure Number: IPCOM000012867D
Original Publication Date: 2003-Jun-04
Included in the Prior Art Database: 2003-Jun-04
Document File: 2 page(s) / 48K

Publishing Venue

IBM

Abstract

Disclosed is a novel method that has been developed to efficiently handle persistent HTTP connections within the kernel using AIX's in-kernel GET engine called FRCA (Fast Response Cache Architecture)

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

  A method to handle cached static GET requests from in-kernel GET Engine in presence of non-cached requests over HTTP 1.1 connections.

The in-kernel GET Engine that is supported on AIX* (called Fast Response Cache Architecture) intercepts HTTP GET requests at the TCP level and if this request is cached in the memory the response is sent directly instead of passing the request to the user space web server. This reduces the system overhead (in terms of CPU utilization) due to eliminating tasks of the web server such as file system access, copying data from user space to kernel, etc. In the original implementation, if the GET Engine cannot handle a request (due to reasons such as a dynamic request or a static request that is not cached in memory) it passes the tcp connection to the user space web server. This implementation worked well for HTTP 1.0 requests where a new tcp connection is created for every request. However, with HTTP 1.1 the connections are persistent which means multiple requests can be handled over a single connection. The GET engine on getting a request that it cannot handle passes the connection to the web server. And all subsequent requests that come on this connection are handled by the user space web server even though they could have been handled by the in-kernel GET Engine. For example, if a HTTP 1.1 connection handles 10 GET requests, and the first of these requests is a dynamic request which the GET engine cannot handle, and the remaining 9 are static requests that are cached in memory by the in-kernel GET Engine, the user space web server ends up handling all 10 requests when 9 of them could have been handled by the in-kernel GET engine. This behavior severely affected the performance gains previously achieved from the...