Academia.eduAcademia.edu

Outline

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)

  1. 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.
  2. C. Amza and G. Soundararajan and E. Cecchet. Transparent Caching with Strong Consistency in Dynamic Content Web Sites. In ICS, 2005.
  3. 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.
  4. S. Frølund and R. Guerraoui. e-transactions : End-to-end reliability for three-tier architectures. IEEE Transactions on Software Engineering, 28(4), 2002.
  5. A. and J. Challenger. Improving Web Server Performance by Caching Dynamic Data. In USITS, 1997.
  6. A. Leff and J.T. Rayfield. Improving Application Throughput With Enterprise JavaBeans Caching. In ICDCS, 2003.
  7. 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.
  8. Oracle. Oracle9iAS Caching Solutions, 2009. http ://www.oracle.com/.
  9. 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.
  10. M. Rabinovich and O. Spatscheck. Web Caching and Replication. Pearson Education, 2001.
  11. RedHat. JBoss Cache, 2009. http ://www.jboss.org/jbosscache/.
  12. L. Rilling, S. Sivasubramanian, and G. Pierre. High Availability and Scalability Support for Web Applications. In SAINT, 2007.
  13. 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.
  14. Transaction Processing Performance Council (TPC). TPC-W transactional web e-Commerce bench- mark. http ://www.tpc.org/tpcw/.
  15. J. Wang. A Survey of Web Caching Schemes for the Internet. SIGCOMM Computer Communication Review, 29(5), 1999.
  16. K. Yagoub, D. Florescu, V. Issarny, and P. Valduriez. Caching Strategies for Data-Intensive Web Sites. In VLDB, 2000.