Application-oriented buffering and caching techniques
Michael Franklin, Björn Þór Jónsson · 1999
In the 1990's the world has seen a paradigm shift in computing, from tightly coupled local-area networks to loosely coupled wide-area networks such as the Internet. The sheer scale of the Internet causes significant problems for data access from remote servers, due to server loads and network latencies. With the growing user population of the Internet and the growing supply of data from on-line services, problems due to network congestion are likely to continue. Furthermore, a new trend in communications is the use of wireless networks to access on-line data services. In wireless environments the network bandwidth may not only be scarce, but it may initially be very expensive. In order to continue to provide scalable and economical access to data in this new computing environment, caching approaches must therefore focus on utilizing the network bandwidth and server resources effectively. This thesis considers query-based access to databases and document collections in such an environment. The work in this thesis is based on the premises that (1) the stream of queries posed by an application contains an abundance of information about the usage of data, which can be used to uncover the fundamental access characteristics of the application, and (2) the efficiency of applications can be improved if such application characteristics are understood and used to formulate new application-oriented caching and buffering techniques. The first topic of the thesis is a new client caching architecture, called semantic caching, that focuses on supporting selection-based query workloads. For such workloads, semantic caching meets the challenges of the new computing environment outlined above by integrating support for query result caching, reduced network traffic, and application-oriented cache management policies. Application-oriented techniques can also be used to expedite the server's processing. The second topic of this thesis is a study of the interaction of an information retrieval application with the buffer manager of the server. Two buffering techniques are proposed and studied, that significantly improve the performance of the application.