Multi-Cache Coherence Protocol for Distributed Internet Services
Abstract
Multi-tier architectures provide a means for building scalable distributed services. Caching is a classical technique for enhancing the performance of systems (e.g. database servers, or web servers). Although caching solutions have been successfully studied for individual tiers of multi-tier systems, if collectively applied, these solutions may violate the coherence of cached data. This paper precisely addresses this issue. It presents e-Caching, an end-to-end caching system for multi-tier services aimed at guaranteeing data consistency across caches. The paper describes a novel caching protocol to automatically detect data dependencies and apply inter-cache invalidations. The implemented protocol is evaluated with the TPC-W online multi-tier bookstore service. The evaluation shows that e-Caching improves service performance compared to regular caching techniques while guaranteeing global data consistency in multi-tier systems. Today, many applications are implemented using multi-tier architectures. Internet services, which range from Web servers to streaming media services, are based on this kind of architectures. Classical three-tier Web applications start with requests from Web clients that flow through an HTTP front-end server and provider of static content, then to an enterprise server to execute the business logic of the application and generate web pages on-the-fly, and finally to a database that stores non-ephemeral data. To face high loads in multi-tier systems, a commonly used approach is caching . Roughly speaking, caching consists in making a copy of request results for faster future reuse of these results. Current caching solutions may successfully apply at individual tiers of multi-tier systems to cache database query results , application business objects , or dynamic Web documents . Intuitively, caching back-end tier results (i.e. database query results) provides higher cache hit ratio than caching front-end tier query results, since the same back-end query may be issued and shared by different front-end queries. Whereas, caching front-end tier results offers a greater benefit in terms of service response times in case of a cache hit, since front-end caching saves time on the front-end and on the back-end. Therefore, caching solutions at these different levels are complementary and would improve the overall performance of multi-tier systems. However, if put all together, existing individual caching solutions of multi-tier systems might result in globally inconsistent cached data across tiers, in case of dynamic and inter-dependent data. The objective of this paper is to precisely bridge the gap between performance and consistency of caching in multi-tier systems as follows : -Automatic data analysis to detect inter-dependent data across caches of all tiers. -Data consistency across multi-tier cache systems by using the generated data dependencies. -Transparent caching for an easier and automated integration of caching to multi-tier systems. In this paper, we present e-Caching, an end-to-end caching system that provides consistency across cache levels. It guarantees consistency of cached data through an automatic multi-tier flow analysis. We describe a novel caching protocol that guarantees consistency of cached data through multi-tier flow
References (16)
- S. Bouchenak, A. Cox, S. Dropsho, S. Mittal, and W. Zwaenepoel. Caching Dynamic Web Content : Designing and Analysing an Aspect-Oriented Solution. In Middleware, 2006.
- C. Amza and G. Soundararajan and E. Cecchet. Transparent Caching with Strong Consistency in Dynamic Content Web Sites. In ICS, 2005.
- K. S. Candan, W.S. Li, Q. Luo, W.P. Hsiung, and D. Agrawal. Enabling Dynamic Content Caching for Database-driven Web Sites. In ACM SIGMOD, 2001.
- S. Frølund and R. Guerraoui. e-transactions : End-to-end reliability for three-tier architectures. IEEE Transactions on Software Engineering, 28(4), 2002.
- A. and J. Challenger. Improving Web Server Performance by Caching Dynamic Data. In USITS, 1997.
- A. Leff and J.T. Rayfield. Improving Application Throughput With Enterprise JavaBeans Caching. In ICDCS, 2003.
- Q. Luo, S. Krishnamurthy, C. Mohan, H. Pirahesh, H. Woo, B.G. Lindsay, and J.F. Naughton. Middle- Tier Database Caching for e-Business. In ACM SIGMOD, 2002.
- Oracle. Oracle9iAS Caching Solutions, 2009. http ://www.oracle.com/.
- F. Pérez, M. Pati no Martínez, R. Jiménez-Peris, and B. Kemme. Consistent and Scalable Cache Replication for Multi-Tier J2EE Applications. In Middleware, 2007.
- M. Rabinovich and O. Spatscheck. Web Caching and Replication. Pearson Education, 2001.
- RedHat. JBoss Cache, 2009. http ://www.jboss.org/jbosscache/.
- L. Rilling, S. Sivasubramanian, and G. Pierre. High Availability and Scalability Support for Web Applications. In SAINT, 2007.
- S. Sivasubramanian, G. Pierre, M. van Steen, and G. Alonso. Analysis of Caching and Replication Strategies for Web Applications. IEEE Internet Computing, 11(1), 2007.
- Transaction Processing Performance Council (TPC). TPC-W transactional web e-Commerce bench- mark. http ://www.tpc.org/tpcw/.
- J. Wang. A Survey of Web Caching Schemes for the Internet. SIGCOMM Computer Communication Review, 29(5), 1999.
- K. Yagoub, D. Florescu, V. Issarny, and P. Valduriez. Caching Strategies for Data-Intensive Web Sites. In VLDB, 2000.