Abstract
Several research projects aim to integrate the functionalities of a database management system with those of a programming language. This is the main goal of Persistent Programming Languages. An open issue in these systems is to define and develop the important functionality that allows several endusers to concurrently access shared persistent data. This paper presents the problems we encountered and the techniques we used to provide the persistent programming language Galileo with the support for concurrent transactions that access a shared remote database. In our system, end—users can access a shared value environment and a shared type environment stored in a remote server. Every user can also use his own private persistent environments that are transparently integrated with the shared ones. Private environments are not directly visible to the other end-users, but there may be some subtle interactions on persistent private data due to inheritance. This system uses a strict two—phase locking technique to ensure serializability of concurrent transactions. Furthermore, it guarantees the recovery of persistent data in case of system and transaction failures.
This work has been partly supported by the EU under contracts No ERB-CIPA-CT-931616 and ESPRIT BRA No 6309 FIDE2 (Formally Integrated Data Environment).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Albano A., L. Cardelli and R. Orsini, “Galileo: A strongly typed interactive conceptual language”, ACM Trans, on Database Systems, Vol. 10, No. 2, pp. 230–260, 1985.
Atkinson M. P. and O. P. Buneman, “Types and Persistence in Database Programming Languages”, ACM Computer Surveys, Vol 19, No. 2, pp. 105–190, 1987.
Bernstein P., V. Hadzilacos and N. Goodman, Concurrency Control and Recovery in Database System, Addison — Wesley, Reading, MA, 1987.
Atkinson M.P., Bancilhon F., DeWitt D., Dittrich K., Maier D. and Zdonik S., “The Object-Oriented Database System Manifesto”, Proc. Int. Conf. DOOD, Kyoto, Japan, pp. 40–57, 1989.
Cardelli L., “A Semantics of Multiple Inheritance”, in Semantics of Data Types, LNCS, Vol. 173, G. Kahn, D. B. MacQueen and G. Plotkin (eds.), Springer Verlag, NY, pp. 51–67, 1984.
Cardelli L. and P. Wegner, “On Understanding Types, Data Abstraction and Polymorphism”, ACM Computing Surveys, Vol. 17, No. 4, pp. 471–522, 1985.
Mainetto G., “Funzionalità del gestore della memoria del Galileo Stabile”, Tech. Rep. 5/60, Progetto Finalizzato “Sistemi Informatici e Calcolo Parallelo”, CNR (in italian), 1991.
Di Giacomo M., G. Mainetto and L. Vinciotti, “Architettura e Realizzazione del Sistema Galileo Distribuito”, Tech. Rep. 5/111, Progetto Finalizzato “Sistemi Informatici e Calcolo Parallelo”, CNR (in italian), 1992.
D. J. DeWitt, P. Futtersack, D. Maier and F. Velez, “A Study of Three Alternative Workstation-Server Architectures for Object-Oriented Database Systems”, Proc. 16th Int. Conf. on VLDB, Brisbane, Australia, pp. 107–121, 1990.
Brown A. L., “Persistent Object Stores”, Persistent Programming Res. Rep. 71-89, Dep. of Computing Science, Univ. of Glasgow and St. Andrews, Scotland, UK, 1989.
Diotiallevi M., “Una Proposta per 1a Realizzazione del Compilatore del Galileo Persistente”, Tech. Rep. 5/35, Progetto Finalizzato “Sistemi Informatici e Calcolo Parallelo”, CNR (in italian), 1990.
Cardelli L., “The Functional Abstract Machine”, AT&T Bell Laboratories, Tech. Rep. TR-107, Murray Hill, NJ, 1983.
Haerder T. and A. Reuter, “Principles of Transaction-Oriented Database Recovery”, ACM Computing Surveys, Vol. 15, No. 4, pp. 287–317, 1983.
Brown A.L., G. Mainetto, F. Matthes, R. Mueller and D.J. McNally, “An Open System Architecture for a Persistent Object Store”, Proc. 25th Hawaii Int. Conf. on System Sciences, Hawaii, USA, pp. 766–776, 1992.
Bensoussan A., C. Clingen and R. Daley, “The Multics Virtual Memory”, Proc. 2nd Symp. on Operating Systems Principles, Princeton University, NY, 1969.
Lorie R. A., “Physical Integrity in a Large Segmented Database”, ACM Transactions on Database Systems, Vol. 2, No. 1, pp. 91–104, 1977.
Purdy A., B. Schuchardt and D. Maier, “Integrating an Object Server with Other Worlds”, ACM Transactions on Office Information Systems, Vol. 5, No. 1, pp. 27–47, 1987.
Moss J. E. B., Nested Transactions: An Approach to Reliable Distributed Computing, The MIT Press, Cambridge, MA, 1985.
Cattel R. G. G. and J. Skeen, “Object Operations Benchmark”, ACM Transactions on Database Systems, Vol. 17, No. 1, pp. 1–31, 1992.
Amato G., F. Giannotti and G. Mainetto, “Data Sharing Analysis for a Database Programming Language via Abstract Interpretation”, Proc. 19th Int. Conf. on VLDB, Dublin, Ireland, pp. 405–415, 1993.
Munro D. S., “On the Integration of Concurrency, Distribution and Persistence”, Computational Science Res. Rep. CS/94/1, Dep. of Mathematical and Computational Sciences, Univ. St. Andrews, Scotland, UK, 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1995 British Computer Society
About this paper
Cite this paper
Mainetto, G., Giacomo, M.D., Vinciotti, L. (1995). Distributed Galileo: a Persistent Programming Language with Transactions. In: Atkinson, M., Maier, D., Benzaken, V. (eds) Persistent Object Systems. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-2122-0_40
Download citation
DOI: https://doi.org/10.1007/978-1-4471-2122-0_40
Publisher Name: Springer, London
Print ISBN: 978-3-540-19912-0
Online ISBN: 978-1-4471-2122-0
eBook Packages: Springer Book Archive