Performance-Enhanced Caching Scheme for Web Clusters for Dynamic Content

Performance-Enhanced Caching Scheme for Web Clusters for Dynamic Content

A. Raghunathan, K. Murugesan
DOI: 10.4018/978-1-4666-2026-1.ch010
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

In order to improve the QoS of applications, clusters of web servers are increasingly used in web services. Caching helps improve performance in web servers, but is largely exploited only for static web content. With more web applications using backend databases today, caching of dynamic content has a crucial role in web performance. This paper presents a set of cache management schemes for handling dynamic data in web clusters by sharing cached contents. These schemes use either automatic or expiry-based cache validation, and work with any type of request distribution. The techniques improve response by utilizing the caches efficiently and reducing redundant database accesses by web servers while ensuring cache consistency. The authors present caching schemes for both horizontal and vertical cluster architectures. Simulations show an appreciable performance rise in response times of queries in clustered web servers.
Chapter Preview
Top

Introduction

Web services have become an important component of business and enterprise operations. In order to meet the current need for their improved availability, scalability and performance, clusters of web servers are increasingly being employed in many installations (Hyun et al., 2003; Sharifian et al., 2009, 2010). Caching of data in a web server provides a further improvement in the application’s response time (Adams, 2004; Anbazhagan & Nagarajan, 2002) but till recently caching has largely been exploited only for static web content. Today, however, most web applications serve up dynamic content to the clients by acquiring data from backend databases (Challenger et al., 2004). While caching of this dynamic data, wherever possible, does improve the response times of the servers (Holmedahl et al., 1998), the need for maintaining cache currency with the database is a problem that needs to be addressed, and its complexity increases when caching is employed in multiple servers within the cluster.

When requests from clients for web pages are distributed across a cluster, different requests for a given page may be directed to different web servers at different times. Each server uses its own cache to respond to this request, accessing the cache immediately without re-querying the database. In case of static content the data does not change and so the cached result would be valid to answer subsequent requests. But if the content is dynamic, it becomes necessary to maintain data consistency among all the caches in the cluster, since each server’s cache is independent, to ensure that the cluster members do not return different results for the same request. In addition, visiting the database by several servers to fetch the same data is inefficient. There is a wide scope for further work on caching of dynamic content in web clusters towards improving QoS of Web services. In this paper we present a set of cache management schemes to improve the overall performance of a web cluster by sharing cached contents with the help of the front-end web switch. Our methods differ from earlier shared caching approaches (Chen et al., 2003; Cuenca-Acuna et al., 2001; Holmedahl et al., 1998). Our schemes utilize the server caches efficiently, reducing redundant database accesses by web servers while also ensuring consistency of cache contents. The proposed techniques could be used with any algorithm used for request distribution within a cluster.

Two principal methods are generally used for cache validation of dynamic data: automatic and expiry-based. The former is preferred for frequently changing data while the latter is employed when the data does not change frequently or when data does not have to be refreshed to the client whenever it changes. We present our caching algorithms for both these methods.

Clusters are also classified in two ways: horizontal and vertical (Turaga et al., 2006). Constituent servers in a horizontal cluster reside on different physical machines; in a vertical cluster they reside on a single physical machine. We propose our caching schemes for both types of clusters. Our simulations show an appreciable performance increase in all cases.

Complete Chapter List

Search this Book:
Reset