Report Number: CS-TR-98-1606
Institution: Stanford University, Department of Computer Science
Title: Associative Caching in Client-Server Databases
Author: Basu, Julie
Date: May 1998
Abstract: Client-server configuration is a popular architecture for modern databases. A traditional assumption in such systems is that clients have limited resources, and query processing is always performed by the server. The server is thus a potential performance bottleneck. To improve the system performance and scalability, today's powerful clients can cache data locally. In this dissertation, we study a new scheme, A*Cache, for associative client-side caching. In contrast to navigational data access using object or page identifiers, A*Cache supports content-based associative access for better data reuse. Query results are stored locally along with their description, and predicate-based reasoning is used to examine and maintain the client cache. Clients execute queries locally if the data is cached, and use update notifications generated by the server for cache maintenance. We first describe the architecture of A*Cache and its transaction execution model. We then develop new optimization techniques for improving the performance of A*Cache. Next, A*Cache performance is investigated through detailed simulation of a client-server database under many different workloads, and compared with other types of caching systems. The simulation results clearly demonstrate the effectiveness of our associative caching scheme for read-only environments, and also for read-write scenarios with moderately high data update probabilities.