skip to main content
10.1145/1449764.1449767acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Interprocedural query extraction for transparent persistence

Published:19 October 2008Publication 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. P. Atkinson and R. Morrison. Orthogonally persistent object systems. VLDB Journal, 4(3):319--401, 1995. Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Cengija. Hibernate your data. onJava.com, 2004.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Ha, M. Gustafsson, S. M. Blackburn, and K. S. McKinley. Microarchitectural characterization of production jvms and java workloads. Mar 2008.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Hedin and T. Ekman. The JastAdd system -- modular extensible compiler construction. Science of Computer Programming, 69:14--26, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hibernate reference documentation. http://www.hibernate.org/hib_docs/v3/reference/en/html, May 2005.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. E. Knuth. Semantics of context-free languages. Theory of Computing Systems, 2(2):127--145, June 1968.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. E. Magnusson and G. Hedin. Circular reference attributed grammars -- their evaluation and applications. Sci. Comput. Program., 68(1):21--37, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  24. Microsoft Corporation. The LINQ project. msdn. microsoft.com/netframework/future/linq.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  28. J. W. Schmidt and F. Matthes. The DBPL project: advances in modular database programming. Inf. Syst., 19(2):121--140, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. L. Wong. Kleisli, a functional query system. J. Funct. Program., 10(1):19--56, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Zand, V. Collins, and D. Caviness. A survey of current object-oriented databases. SIGMIS Database, 26(1):14--29, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Interprocedural query extraction for transparent persistence

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          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
          • 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

          Copyright © 2008 ACM

          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

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate268of1,244submissions,22%

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader