Download:
|
by James C. Hu Irfan Pyarali
Parallel and Distributed Computing Practices Journal, special issue on Distributed Object-Oriented Systems
http://siesta.cs.wustl.edu/~schmidt/PDCP.ps.gz
Add To MetaCart
Abstract:
This paper has been submitted to the Parallel and Distributed Computing Practices journal, special issue on Distributed Object-Oriented Systems, edited by Maria Cobb. This paper provides two contributions to the study of highperformance object-oriented (OO) Web servers. First, it outlines the design principles and optimizations necessary to develop efficient and scalable Web servers and illustrates how we have applied these principles and optimizations to create JAWS. JAWS is a high-performance Web server that is explicitly designed to alleviate overheads incurred by existing Web servers on high-speed networks. In addition to its highly extensible OO design, it is also highly efficient and consistently outperforms existing Web servers (such as Apache, Java Server, PHTTPD, Zeus, and Netscape Enterprise) over 155 Mbps ATM networks on UNIX platforms. Second, this paper describes how we have customized the JAWS OO design to leverage advanced features of Windows NT for multi-processor platforms linked by high-speed ATM networks. The Windows NT features used in JAWS include asynchronous mechanisms for connection establishment and data transfer. Our previous benchmarking studies demonstrate that once the overhead of disk I/O is reduced to a negligible constant factor (e.g., via memory caches), the primary determinants of Web server performance are the concurrency and event dispatching strategies. Our performance results over a 155 Mbps ATM network indicate that certain Windows NT asynchronous I/O mechanisms (i.e., TransmitFile) provide superior performance for large file transfers compared with conventional synchronous multi-threaded servers. On the other hand, synchronous event dispatching performed better for files less than 50 Kbytes. Thus, to provide optimal performance, a Web server design
Citations
|
3756
|
Design Patterns: Elements of Reusable Object-Oriented Softwar e
– Gamma, Helm, et al.
- 1995
|
|
204
|
Removal policies in network caches for world-wide web documents
– Williams, Abrams, et al.
- 1996
|
|
166
|
ACE: an Object-Oriented Framework for Developing Distributed Applications
– Schmidt
- 1994
|
|
158
|
The case for persistent-connection HTTP
– Mogul
|
|
149
|
Reactor: An Object Behavioral Pattern for Concurrent Event Demultiplexing and Event Handler Dispatching
– Schmidt
- 1995
|
|
125
|
Active object: An object behavioral pattern for concurrent programming
– Lavender, Schmidt
- 1996
|
|
110
|
A scalable http server: The ncsa prototype
– Katz, Katz, et al.
- 1994
|
|
92
|
Measuring the Impact of Event Dispatching and Concurrency Models on Web Server Performance Over High-speed Networks
– Hu, Pyarali, et al.
- 1997
|
|
85
|
Acceptor and Connector: Design Patterns for Initializing Communication Services
– Schmidt
- 1997
|
|
67
|
The APIC Approach to High Performance Network Interface Design
– Dittia, Parulkar, et al.
- 1997
|
|
59
|
GPERF: A Perfect Hash Function Generator
– Schmidt
- 1990
|
|
55
|
WebSTONE: The First Generation
– Trent, Sake
- 1995
|
|
50
|
Principles for Developing and Measuring High-performance Web Servers over ATM
– Hu, Mungee, et al.
- 1998
|
|
48
|
Service Configurator: A Pattern for Dynamic Configuration of Services
– Jain, Schmidt
- 1997
|
|
48
|
Performance issues in parallelized network protocols
– Nahum, Yates, et al.
- 1994
|
|
23
|
LADDIS: The Next Generation
– Wittle, Keith
|
|
23
|
Proactor – An Object Behavioral Pattern for Dispatching Asynchronous Event Handlers
– Harrison, Pyarali, et al.
- 1997
|
|
21
|
Asynchronous Completion Token: an Object Behavioral Pattern for Efficient Asynchronous Event Handling
– Pyarali, Harrison, et al.
- 1997
|
|
19
|
Developing flexible and highperformance Web servers with frameworks and patterns
– Schmidt, Hu
|
|
14
|
Web Server Technology: The Advanced Guide for World Wide Web Information Providers
– Yeager, McGrath
- 1996
|
|
11
|
Applying the Proactor Pattern to High-Performance Web Servers
– Hu, Pyarali, et al.
- 1998
|
|
9
|
and Per Gunningberg. Locking Strategies in Multiprocessor Implementations of Protocols
– Bjorkman
- 1996
|
|
9
|
The APIC Approach to High Performance Network Interface Design: Protected DMA and Other Techniques
– Cox
- 1997
|
|
7
|
An Explanation of the SPECweb96 Benchmark. Standard Performance Evaluation Corporation whitepaper
– Carlton
- 1996
|
|
7
|
Dynamically Configuring Communication Services with the Service Configurator Pattern
– Jain, Schmidt
- 1997
|