Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Interprocedural query extraction for transparent persistence

Published: 19 October 2008 Publication History

Abstract

Transparent persistence promises to integrate programming languages and databases by allowing programs to access persistent data with the same ease as non-persistent data. In this work we demonstrate the feasibility of optimizing transparently persistent programs by extracting queries to efficiently prefetch required data. A static analysis derives query structure and conditions across methods that access persistent data. Using the static analysis, our system transforms the program to execute explicit queries. The transformed program composes queries across methods to handle method calls that return persistent data. We extend an existing Java compiler to implement the static analysis and program transformation, handling recursion and parameterized queries. We evaluate the effectiveness of query extraction on the OO7 and TORPEDO benchmarks. This work is focused on programs written in the current version of Java, without languages changes. However, the techniques developed here may also be of value in conjunction with object-oriented languages extended with high-level query syntax.

References

[1]
M. Atkinson and R. Morrison. Special issue on persistent object systems. VLDB Journal, 4(3), 1995.
[2]
M. P. Atkinson and R. Morrison. Orthogonally persistent object systems. VLDB Journal, 4(3):319--401, 1995.
[3]
P. A. Bernstein, S. Pal, and D. Shutt. Context-based prefetch for implementing objects on relations. In The VLDB Journal, pages 327--338, 1999.
[4]
G. M. Bierman, E. Meijer, and W. Schulte. The essence of data access in c?. In Proc. of the European Conference on Object-Oriented Programming (ECOOP), pages 287--311, 2005.
[5]
M. J. Carey, D. J. DeWitt, C. Kant, and J. F. Naughton. A status report on the OO7 OODBMS benchmarking effort. In Proc. of ACM Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 414--426. ACM Press, 1994.
[6]
D. Cengija. Hibernate your data. onJava.com, 2004.
[7]
S. Chaudhuri. An overview of query optimization in relational systems. In Proc. of Symp. on Principles of Database System (PODS), pages 34--43, 1998.
[8]
W. R. Cook and S. Rai. Safe query objects: statically typed objects as remotely executable queries. In ICSE '05: Proceedings of the 27th international conference on Software engineering, pages 97--106, New York, NY, USA, 2005. ACM Press.
[9]
E. Cooper, S. Lindley, P. Wadler, and J. Yallop. Links: Web programming without tiers. In Proceedings of the 5th International Symposium on Formal Methods for Components and Objects, pages 266--296, Amsterdam, The Netherlands, November 2006.
[10]
A. Gawecki and F. Matthes. Integrating query and program optimization using persistent CPS representations. In M. P. Atkinson and R. Welland, editors, Fully Integrated Data Environments, ESPRIT Basic Research Series, pages 496--501. Springer Verlag, 2000.
[11]
A. Georges, D. Buytaert, and L. Eeckhout. Statistically rigorous java performance evaluation. In OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object oriented programming systems and applications, pages 57--76, New York, NY, USA, 2007. ACM.
[12]
J. Ha, M. Gustafsson, S. M. Blackburn, and K. S. McKinley. Microarchitectural characterization of production jvms and java workloads. Mar 2008.
[13]
W.-S. Han, Y.-S. Moon, and K.-Y. Whang. PrefetchGuide: capturing navigational access patterns for prefetching in client/server object-oriented/object-relational dbmss. Information Sciences, 152(1):47--61, 2003.
[14]
G. Hedin and T. Ekman. The JastAdd system -- modular extensible compiler construction. Science of Computer Programming, 69:14--26, 2007.
[15]
Hibernate reference documentation. http://www.hibernate.org/hib_docs/v3/reference/en/html, May 2005.
[16]
A. Ibrahim and W. Cook. Automatic prefetching by traversal profiling in object persistence architectures. In Proc. of the European Conference on Object-Oriented Programming (ECOOP), 2006.
[17]
K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. A study of devirtualization techniques for a java just-in-time compiler. In OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 294--310, New York, NY, USA, 2000. ACM Press.
[18]
D. E. Knuth. Semantics of context-free languages. Theory of Computing Systems, 2(2):127--145, June 1968.
[19]
D. Leijen and E. Meijer. Domain specific embedded compilers. In Proceedings of the 2nd conference on Domain specific languages, pages 109--122. ACM Press, 1999.
[20]
E. Magnusson and G. Hedin. Circular reference attributed grammars -- their evaluation and applications. Sci. Comput. Program., 68(1):21--37, 2007.
[21]
D. Maier. Representing database programs as objects. In F. Bancilhon and P. Buneman, editors, Advances in Database Programming Languages, Papers from DBPL-1, pages 377--386. ACM Press / Addison-Wesley, 1987.
[22]
B. E. Martin. Uncovering database access optimizations in the middle tier with TORPEDO. In Proceedings of the 21st International Conference on Data Engineering, pages 916--926. IEEE Computer Society, 2005.
[23]
F. Matthes, G. Schroder, and J. Schmidt. Tycoon: A scalable and interoperable persistent system environment. In M. Atkinson, editor, Fully Integrated Data Environments. Springer-Verlag, 1995.
[24]
Microsoft Corporation. The LINQ project. msdn. microsoft.com/netframework/future/linq.
[25]
R. Morrison, R. C. H. Connor, G. N. C. Kirby, D. S. Munro, M. P. Atkinson, Q. I. Cutts, A. L. Brown, and A. Dearle. The Napier88 persistent programming language and environment. In M. P. Atkinson and R. Welland, editors, Fully Integrated Data Environments, pages 98--154. Springer, 1999.
[26]
M. Neubauer and P. Thiemann. From sequential programs to multi-tier applications by program transformation. In Proc. of the ACM Symp. on Principles of Programming Languages (POPL), pages 221--232, 2005.
[27]
J. Schmidt, F. Matthes, and P. Valduriez. Building persistent application systems in fully integrated data environments: Modularization, abstraction and interoperability. In Proceedings of Euro-Arch'93 Congress. Springer Verlag, Oct. 1993.
[28]
J. W. Schmidt and F. Matthes. The DBPL project: advances in modular database programming. Inf. Syst., 19(2):121--140, 1994.
[29]
B. A. Wiedermann and W. R. Cook. Extracting queries by static analysis of transparent persistence. In Proc. of the ACM Conf. on Principles of Programming Languages (POPL), pages 199--210, 2007.
[30]
D.Willis, D. J. Pearce, and J. Noble. Efficient object querying in Java. In Proc. of the European Conference on Object-Oriented Programming (ECOOP), Nantes, France, 2006.
[31]
L. Wong. Kleisli, a functional query system. J. Funct. Program., 10(1):19--56, 2000.
[32]
M. Zand, V. Collins, and D. Caviness. A survey of current object-oriented databases. SIGMIS Database, 26(1):14--29, 1995.

Cited By

View all
  • (2022)Verification of ORM-based controllers by summary inferenceProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510148(2340-2351)Online publication date: 21-May-2022
  • (2021)UDF to SQL translation through compositional lazy inductive synthesisProceedings of the ACM on Programming Languages10.1145/34854895:OOPSLA(1-26)Online publication date: 15-Oct-2021
  • (2017)SQLizer: query synthesis from natural languageProceedings of the ACM on Programming Languages10.1145/31338871:OOPSLA(1-26)Online publication date: 12-Oct-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 43, Issue 10
September 2008
613 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1449955
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '08: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
    October 2008
    654 pages
    ISBN:9781605582153
    DOI:10.1145/1449764
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2008
Published in SIGPLAN Volume 43, Issue 10

Check for updates

Author Tags

  1. attribute grammars
  2. databases
  3. object-relational mapping
  4. programming languages
  5. static analysis

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Verification of ORM-based controllers by summary inferenceProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510148(2340-2351)Online publication date: 21-May-2022
  • (2021)UDF to SQL translation through compositional lazy inductive synthesisProceedings of the ACM on Programming Languages10.1145/34854895:OOPSLA(1-26)Online publication date: 15-Oct-2021
  • (2017)SQLizer: query synthesis from natural languageProceedings of the ACM on Programming Languages10.1145/31338871:OOPSLA(1-26)Online publication date: 12-Oct-2017
  • (2015)Where was this SQL query executed? a static concept location approach2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)10.1109/SANER.2015.7081881(580-584)Online publication date: Mar-2015
  • (2015)Integrating query processing with parallel languages2015 31st IEEE International Conference on Data Engineering Workshops10.1109/ICDEW.2015.7129583(240-244)Online publication date: Apr-2015
  • (2010)Compiler Plugins Can Handle Nested Languages: AST-Level Expansion of LINQ Queries for JavaObject Databases10.1007/978-3-642-14681-7_3(41-58)Online publication date: 2010
  • (2009)Compiler plugins can handle nested languagesProceedings of the Second international conference on Object databases10.5555/1883713.1883716(41-58)Online publication date: 1-Jul-2009
  • (2018)Building Efficient Query Engines in a High-Level LanguageACM Transactions on Database Systems10.1145/318365343:1(1-45)Online publication date: 11-Apr-2018
  • (2017)SQLizer: query synthesis from natural languageProceedings of the ACM on Programming Languages10.1145/31338871:OOPSLA(1-26)Online publication date: 12-Oct-2017
  • (2016)Computer-Assisted Query FormulationFoundations and Trends in Programming Languages10.1561/25000000183:1(1-94)Online publication date: 1-Jun-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media