Holistic Query Transformations for Dynamic Web Applications

A promising approach to scaling Web applications is to distribute the server infrastructure on which they run. This approach, unfortunately, can introduce latency between the application and database servers, which in turn increases the network latency of Web interactions for the clients (end users). In this paper we introduce the concept of source-to-source holistic transformations---transformations that seek to optimize both the application code and the database requests made by it, to reduce clientlatency. As examples of our concept, we propose and evaluate two source-to-source holistic transformations that focus on hiding the latencies of database queries. We argue that opportunities for applying these transformations will continue to exist in Web applications. We then present algorithms for automating these transformations in asource-to-source compiler. Finally, we evaluate the effect of these two transformations on three realistic Web benchmark applications, both in the traditional centralized setting and a distributed setting.

[1]  Wei Lin,et al.  Web prefetching between low-bandwidth clients and proxies: potential and performance , 1999, SIGMETRICS '99.

[2]  Todd C. Mowry,et al.  Automatic compiler-inserted I/O prefetching for out-of-core applications , 1996, OSDI '96.

[3]  P. Krishnan,et al.  Practical prefetching via data compression , 1993 .

[4]  Todd C. Mowry,et al.  Taming the memory hogs: using compiler-inserted releases to manage physical memory intelligently , 2000, OSDI.

[5]  Won Kim,et al.  On optimizing an SQL-like nested query , 1982, TODS.

[6]  Jeffrey C. Mogul,et al.  Using predictive prefetching to improve World Wide Web latency , 1996, CCRV.

[7]  Mike Hibler,et al.  An integrated experimental environment for distributed systems and networks , 2002, OPSR.

[8]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[9]  Fan Yang,et al.  Hilda: A High-Level Language for Data-DrivenWeb Applications , 2006, 22nd International Conference on Data Engineering (ICDE'06).

[10]  Gregory R. Ganger,et al.  Dynamic Function Placement for Data-Intensive Cluster Computing , 2000, USENIX Annual Technical Conference, General Track.

[11]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[12]  Goetz Graefe,et al.  Executing Nested Queries , 2003, BTW.

[13]  Thomas M. Kroeger,et al.  Predicting file system actions from prior events , 1996 .

[14]  Michael Stonebraker,et al.  Extending a database system with procedures , 1987, TODS.

[15]  Matti A. Hiltunen,et al.  Cassyopia: Compiler Assisted System Optimization , 2003, HotOS.

[16]  Surajit Chaudhuri,et al.  Optimization of queries with user-defined predicates , 1996, TODS.

[17]  Timos K. Sellis,et al.  Multiple-query optimization , 1988, TODS.

[18]  Aaron Vegh MySQL Database Server , 2011 .

[19]  Alon Y. Halevy,et al.  Queries Independent of Updates , 1993, VLDB.

[20]  Harry K. T. Wong,et al.  Optimization of nested SQL queries revisited , 1987, SIGMOD '87.

[21]  Yannis Manolopoulos,et al.  A Data Mining Algorithm for Generalized Web Prefetching , 2003, IEEE Trans. Knowl. Data Eng..

[22]  Surajit Chaudhuri,et al.  An overview of query optimization in relational systems , 1998, PODS.

[23]  Bruce M. Maggs,et al.  Invalidation Clues for Database Scalability Services , 2007, 2007 IEEE 23rd International Conference on Data Engineering.

[24]  Bruce M. Maggs,et al.  Simultaneous scalability and security for data-intensive web applications , 2006, SIGMOD Conference.

[25]  Prasan Roy,et al.  Efficient and extensible algorithms for multi query optimization , 1999, SIGMOD '00.

[26]  Fan Yang,et al.  A unified platform for data driven web applications with automatic client-server partitioning , 2007, WWW '07.

[27]  Garth A. Gibson,et al.  Automatic I/O hint generation through speculative execution , 1999, OSDI '99.

[28]  S. Sudarshan,et al.  Optimizing Nested Queries with Parameter Sort Orders , 2005, VLDB.

[29]  Jim Zelenka,et al.  Informed prefetching and caching , 1995, SOSP.