Skip to main content

List comprehensions in agna, a parallel persistent object system

  • Conference paper
  • First Online:
Functional Programming Languages and Computer Architecture (FPCA 1991)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 523))

Abstract

List comprehensions are structurally similar to SQL, the standard declarative query language for relational databases. Unlike SQL, they are more general, and are embedded seamlessly into powerful programming languages. Thus, functional languages with list comprehensions are attractive as query languages for persistent object systems, where database objects and queries are not distinguished from other objects and computations. We have implemented such a system, called Agna. In this paper, we describe optimizations on list comprehensions in Agna. We use techniques borrowed from relational databases, as well as techniques specific to our parallel implementation. Experimental results show a dramatic impact on performance. A comparison with a commercial relational database system and with an experimental parallel relational system indicates that the performance of Agna approaches that of state of the art relational database systems.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arvind, D. E. Culler, and G. K. Maa. Assessing the Benefits of Fine-grained Parallelism in Dataflow Programs. Intl. J. of Supercomputer Applications, 2(3), 1988.

    Google Scholar 

  2. M. Astrahan et al. System R: Relational Approach to Database Management. ACM Trans. on Database Systems, 1(2), June 1976.

    Google Scholar 

  3. M. P. Atkinson, K. Chisholm, and W. Cockshott. PS-Algol: An Algol with a Persistent Heap. ACM SIGPLAN Notices, 17(7):24–31, July 1981.

    Google Scholar 

  4. F. Bancilhon, T. Briggs, S. Khoshafian, and P. Valduriez. FAD, a Powerful and Simple Database Language. In Proc. 13th. Intl. Conf. on Very Large Databases, Brighton, England, pages 97–105, September 1–4 1987.

    Google Scholar 

  5. D. Bitton, D. J. De Witt, and C. Turbyfill. Benchmarking Database Systems: A Systematic Approach. In Proc. 1983 Conf. on Very Large Data Bases, August 1983.

    Google Scholar 

  6. H. Boral, W. Alexander, L. Clay, G. Copeland, S. Danforth, M. Franklin, B. Hart, M. Smith, and P. Valduriez. Prototyping Bubba, A Highly Parallel Database System. IEEE Trans. on Knowledge and Data Engineering, 2(1):4–24, March 1990.

    Google Scholar 

  7. O. P. Buneman, R. E. Frankel, and R. S. Nikhil. An Implementation Technique For Database Query Languages. ACM Trans. on Database Systems, 7(2):164–186, June 1982.

    Google Scholar 

  8. H.-T. Chou, D. J. DeWitt, R. H. Katz, and A. C. Klug. Design and Implementation of the Wisconsin Storage System. Software—Practice and Experience, 15(10):943–962, October 1985.

    Google Scholar 

  9. G. Copeland and D. Maier. Making Smalltalk a Database System. In Proc. ACM SIGMOD, page 325, 1984.

    Google Scholar 

  10. C. J. Date. A Guide to the SQL Standard. Addison-Wesley, Reading, MA, 1987.

    Google Scholar 

  11. D. DeWitt, S. Ghandeharizadeh, D. Schneider, A. Bricker, H.-I. Hsiao, and R. Rasmussen. The Gamma Database Machine Project. IEEE Trans. on Knowledge and Data engineering, 2(1):44–62, March 1990.

    Google Scholar 

  12. M. L. Heytens. The Design and Implementation of a Parallel Persistent Object System. PhD thesis, MIT, 1991 (expected).

    Google Scholar 

  13. K. Kato, T. Masuda, and Y. Kiyoki. A Comprehension-Based Database Language and its Distributed Execution. In Proc. 10th Intl. Conf. on Distributed Computing Systems, Paris, France, pages 442–449, May 28–June 1 1990.

    Google Scholar 

  14. K. G. Kulkarni and M. P. Atkinson. Implementing Extended Functional Data Model Using PS-Algol. Software: Practice & Experience, 1986.

    Google Scholar 

  15. R. S. Nikhil. Functional Databases, Functional Languages. In Proc. 1985 Wkshp. on Persistence and Data Types, Appin, Scotland. Dept. of Computing Science, Univ. of Glasgow, and Dept. of Computational Science, Univ. of St. Andrews, Scotland, July 1987 (revised).

    Google Scholar 

  16. R. S. Nikhil. Id (Version 90.0) Reference Manual. Technical Memo 284-1, MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA 02139, USA, July 1990.

    Google Scholar 

  17. R. S. Nikhil and M. L. Heytens. Exploiting Parallelism in the Implementation of AGNA, a Persistent Programming System. In Proc. 7th IEEE Intl. Conf. on Data Engineering, Kobe, Japan, April 8–12 1991.

    Google Scholar 

  18. A. Ohori, O. P. Buneman, and V. Breazu-Tannen. Database Programming in Machiavelli—a Polymorphic Language with Static Type Inference. In Proc. Intl. Conf. on the Management of Data, Portland, OR, pages 46–57, June 1989.

    Google Scholar 

  19. S. L. Peyton Jones, C. Clack, J. Salkild, and M. Hardie. GRIP — A High Performance Architecture for Parallel Graph Reduction. In Proc. 3rd. Intl. Conf. on Functional Programming and Computer Architecture, Portland, OR, September 1987.

    Google Scholar 

  20. D. W. Shipman. The Functional Data Model and the Data Language DAPLEX. ACM Trans. on Database Systems, 6(1):140–173, March 1981.

    Google Scholar 

  21. P. Trinder. A Functional Database. Oxford University D.Phil. Thesis, December 1989.

    Google Scholar 

  22. P. Wadler. Deforestation: Transforming Programs To Eliminate Trees. In European Symposium on Programming, Nancy, France, January 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

John Hughes

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Heytens, M.L., Nikhil, R.S. (1991). List comprehensions in agna, a parallel persistent object system. In: Hughes, J. (eds) Functional Programming Languages and Computer Architecture. FPCA 1991. Lecture Notes in Computer Science, vol 523. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3540543961_27

Download citation

  • DOI: https://doi.org/10.1007/3540543961_27

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54396-1

  • Online ISBN: 978-3-540-47599-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics