Computer Science Department
School of Computer Science, Carnegie Mellon University
Improving the Performance of Static and Dynamic
The broad goal of this thesis is to improve the user-perceived performance of both static and dynamic requests at a busy Web site. By static requests we mean requests of the form "GET me a file". By dynamic requests we mean those which require the Web server to create the requested information on the fly, by accessing a database backend. The approach taken in this thesis does not require buying more hardware or any other costly system upgrades. The main idea is to schedule the existing resources better among requests so as to either improve overall mean performance or improve the performance of a small subset of high-priority requests.
The first part of the thesis presents a very simple solution for improving overall mean response times for static Web workloads by favoring those requests that are quick, or have small remaining processing requirements in accordance with the SRPT scheduling policy. Our policy is particularly effective during transient overload. The second part of this thesis focuses on the more complex dynamic Web requests. We propose and implement various approaches for providing differentiated levels of service for database-driven dynamic requests. We propose and evaluate algorithms for both scheduling of database internal resources and scheduling outside the DBMS through an external front-end. In the third part of the thesis we study the effect of the experimental model on performance evaluation. In particular, we investigate the impact of choosing a closed versus an open system model, a question that has received little attention in the past.