Red Hat Content Accelerator is a kernel-based Web server licensed under the GNU General Public License (GPL).
It is currently limited to serving static webpages and coordinating with kernel-space modules, user-space modules, and regular user-space Web server daemons to provide dynamic content. Regular user-space Web servers do not need to be altered in any way for Red Hat Content Accelerator to coordinate with them. However, user-space code has to use a new interface based on the tux(2) system call.
Although dynamic content is becoming increasingly popular, there is still a need to serve static content. For example, nearly all images are static. Red Hat Content Accelerator can serve static content very efficiently from within the Linux kernel. A similar operation is already performed by the Network File System (NFS) daemon that runs in the kernel.
Red Hat Content Accelerator also has the ability to cache dynamic content. Red Hat Content Accelerator modules (which can be build in kernel space or in user space; user space is recommended) can create "objects" which are stored using the page cache. To respond to a request for dynamic data, a Red Hat Content Accelerator module can send a mix of dynamically-generated data and cached pre-generated objects, taking maximal advantage of Red Hat Content Accelerator's zero-copy architecture.
This new architecture for serving dynamic content requires a new API. The current API's for CGI can not be sufficiently mapped to Red Hat Content Accelerator's API. Thus, existing CGI applications must be converted before Red Hat Content Accelerator will process them. If the CGI application does not require the increased speed of Red Hat Content Accelerator, Red Hat Content Accelerator can process it by running the CGI application normally. This is done through Red Hat Content Accelerator's CGI module. Red Hat Content Accelerator can also handle a complex request (CGI or otherwise) by redirecting it to another Web server daemon such as Apache. In other words, static content, Red Hat Content Accelerator modules, old-style CGI applications, and programs specifically written for other webservers can be run on the same system with Red Hat Content Accelerator as the main web server.
In summary, the differences between Red Hat Content Accelerator and other webservers as well as the benefits of using Red Hat Content Accelerator include:
Red Hat Content Accelerator runs partly within a custom version of kernel 2.4.x or higher and partly as a user-space daemon.
With a capable network card, Red Hat Content Accelerator enables direct scatter-gather DMA from the page cache directly to the network, thus avoiding data copies.
Whenever Red Hat Content Accelerator is unsure how to process a request or receives a request it is unable to handle, it always redirects the request to the user-space web server daemon to handle it in an RFC-compliant manner. An example of this user-space web server daemon is Apache.
Note | |
---|---|
Apache is used throughout this document as the user-space web server daemon for readability. |
For questions or comments about Red Hat Content Accelerator or this documentation, join the <[email protected]> mailing list. For instructions on joining the mailing list, see http://www.redhat.com/mailing-lists/.
Also visit the Red Hat Content Accelerator Support page available at:
http://www.redhat.com/services/techsupport/tux/. |
The Red Hat Content Accelerator 2.2 release is an incremental upgrade to Red Hat Content Accelerator 1.0 and keeps source-code level compatibility with user-space modules.
The incremental enhancements include
True zero-copy disk reads — Whereas Red Hat Content Accelerator 1.0 copied files into a temporary buffer, Red Hat Content Accelerator 2.2 is integrated with the page cache and thus uses zero-copy block IO.
Generic zero-copy network writes — Red Hat Content Accelerator 2.2 uses the generic zero-copy TCP framework.
Zero-copy parsing — Where possible, Red Hat Content Accelerator parses input packets directly. Even in RAM-limited situations, Red Hat Content Accelerator now does full, back-to-back zero-copy I/O.
Other changes include
Enhanced user-space utilities and module support.
Mass virtual hosting support — The host-based virtual server patch has been added to Red Hat Content Accelerator. There is no limit on the number of virtual hosts supported, only RAM and diskspace.
CGIs can be bound to particular CPUs or can be left unbound.
A number of bugs were fixed which caused performance problems — Red Hat Content Accelerator 2.2 is now significantly faster than Red Hat Content Accelerator 1.0!