Scott Weber
CSE 498

Review of "A Non-interfering Deployable Web Prefetching System"

Prefetching is an idea that can considerably reduce the response time that a user perceives when retrieving a web document.  While the user is reading a page, the browser can prefetch documents in the background, attempting to predict what the user will request next.  If the user requests a document that has been prefetched, it is served directly from the browser's local cache, eliminating the propagation, processing and transfer delays.  However, prefetching is not all good.  It introduces extra traffic into the network that may interfere with higher priority demand traffic.  To develop an effective prefetching scheme, many have suggested modifications to clients, servers and even to HTTP itself.  The authors of this paper describe a system for prefetching that causes little interference and requires more easily deployable modifications to current technology.

The system described uses javascript or embedded html to cause the prefetching to occur.  This method obviates the need to modify the client and the addition of a web server module or some kind of proxy that adds the appropriate javascript to an outgoing document sidesteps the need to directly modify the server.  Neither of these changes addresses interference concerns.  To solve the problem of interference at the server, the authors propose a monitor that keeps track of the load on the server and controls the amount of prefetching via a hint server that the client contacts.  The monitor is tuned to contact the server 5-10 times every second and measure the latency of the corresponding response.  It is not clear how this extra traffic introduced by the monitor might affect the condition at the server.  While the results seem to indicate that the monitor does not have detrimental effects, it is not clear how true this is.

To eliminate network level interference, the authors suggest using a TCP-Nice stack.  This would require modification of the operating system at the client end and modification of the client application to give it knowledge on how to appropriately switch between TCP-Nice and the normal TCP stack.  Both of these problems make it rather unlikely that such a scheme would be adopted.

An issue that the authors do not even bring up is how such a system would change the economics of the web.  Looking at their design, it is unclear who would provide the monitor or the hint server.  It would make sense for the content provider to include the prefetching modifications in their content and for the client to provide his own hint server, but this causes problems.  The content modifier must know the location of the hint server and in order to be effective, the hint server should be the same for a given user across his entire session and all sites visited.  Thus, for best results, the same entity must be responsible for content modification and hint server maintenance.  One solution might push both functions to the ISP or some other third party.  A customer would point his web browser to a "prefetching proxy" that would do content modification and knows of the single hint server used by all clients of the proxy.  The mon! itor problem still remains.  The monitor must know the hint server and the content provider.  The hint server wants the monitor to be close and tightly coupled, updating rapidly.  The content provider would like as few monitors as possible as each one adds load to the server.  An agreement would have to be reached between a prefetching provider and a content provider to find an appropriate solution.

At a higher level, prefetching changes the web from a pull model to a push model.  Particularly, the proposed system in this paper makes a push nearly indistinguishable from a pull.  Thus a content provider could induce the client to pull lucrative content, inflating page views and distorting statistics used for payment for things like banner advertisements.

The economics must be addressed before the described system is truly "deployable," but that may simply work itself out in the economy of the Internet.  This paper presents a neat approach to implementing prefetching with little modification to the existing infrastructure.  I would recommend this paper for reading to others.

REFERENCE
Ravi Kokku, Praveen Yalagandula, Arun Venkataramani, and Mike Dahlin.  "A Non-interfering Deployable Web Prefetching System."  Proceedings of USITS, March 2003.