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.
Preview
Unable to display preview. Download preview PDF.
References
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.
M. Astrahan et al. System R: Relational Approach to Database Management. ACM Trans. on Database Systems, 1(2), June 1976.
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.
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.
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.
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.
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.
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.
G. Copeland and D. Maier. Making Smalltalk a Database System. In Proc. ACM SIGMOD, page 325, 1984.
C. J. Date. A Guide to the SQL Standard. Addison-Wesley, Reading, MA, 1987.
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.
M. L. Heytens. The Design and Implementation of a Parallel Persistent Object System. PhD thesis, MIT, 1991 (expected).
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.
K. G. Kulkarni and M. P. Atkinson. Implementing Extended Functional Data Model Using PS-Algol. Software: Practice & Experience, 1986.
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).
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.
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.
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.
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.
D. W. Shipman. The Functional Data Model and the Data Language DAPLEX. ACM Trans. on Database Systems, 6(1):140–173, March 1981.
P. Trinder. A Functional Database. Oxford University D.Phil. Thesis, December 1989.
P. Wadler. Deforestation: Transforming Programs To Eliminate Trees. In European Symposium on Programming, Nancy, France, January 1988.
Author information
Authors and Affiliations
Editor information
Rights 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