Our goal is to improve the performance of Web services.
In the first half of the talk, we focus on Web servers serving static (GET file) requests. Here we ask the following question: "Is it possible to reduce the expected response time of every request at a Web server, simply by changing the order in which we schedule the requests?" We present research results, including both queueing theoretic and kernel-level implementation results, showing that the answer is yes. This work appeared in [SIGMETRICS 01, 03] and [Transactions on Computer Systems 03] and was extended to transient overload scenarios in [ITC 03] and [Transactions on Internet Technologies 06].
In the second half of the talk, we consider e-commerce Web sites, where the backend database becomes the bottleneck. Our goal here is to build a mechanism which allows the web vendors to prioritize in favor of clients who are "big spenders," offering them lower delays. We describe both QoS mechanisms "internal" to the database, at the lock queue modules, and mechanisms "external" to the database. This work appeared in [ICDE 04,05,06].