Scalable Web Server Architectures

  • Authors:
  • Antoine Mourad;Huiqun Liu

  • Affiliations:
  • -;-

  • Venue:
  • ISCC '97 Proceedings of the 2nd IEEE Symposium on Computers and Communications (ISCC '97)
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

A scalable web server architecture is key to enabling WWW sites to handle the ever increasing traffic loads. There is empirical evidence that, for the current generation of web server applications, multiprocessor platforms do not provide the needed scalability to handle large traffic volumes. This is primarily due to the fact that current TCP/IP implementations are single-threaded which severely limits the multiprocessor speedup for HTTP server applications. Therefore a distributed architecture consisting of independent servers sharing the load is more appropriate for implementing a scalable web server. Most current distributed server platforms typically use some form of Round-Robin or weighted Round-Robin implemented using the DNS server. This approach for distributing the load requires each HTTP server to handle requests for all the data stored at the site which implies that either each server must store its own copy of all the data available at the site or it must access the data from other HTTP servers or some dedicated back-end file or database servers thus generating significant back-end traffic. Neither of these options scale effectively because they lead to bottlenecks in the LAN or back-end servers or require significant additional resources. The "redirection-based" hierarchical server architecture eliminates bottlenecks in the server complex and allows for hardware to be added seamlessly to handle increases in load. In this approach, two levels of servers are used: redirection servers and normal HTTP servers. Data are partitioned according to their content and stored on different HTTP servers. Redirection servers are used to distribute the users' requests to the corresponding HTTP servers using the redirection mechanism supported by the HTTP protocol. This approach is completely transparent to the user, allows for intelligent distribution of load among servers, and achieves better caching efficiency compared with other load balancing schemes.