Implementing Concurrency Control in Reliable Distributed Object-Oriented Systems
One of the key concepts available in many object-oriented programming languages is that of type-inheritance, which permits new types to be derived from, and inherit the capabilities of, old types. This paper describes how to exploit this property in a very simple fashion to implement object-oriented concurrency control. We show how by using type-inheritance, objects may control their own level of concurrency in a type-specific manner. Simple examples demonstrate the applicability of the approach. The implementation technique described here is being used to develop Arjuna, a fault-tolerant distributed programming system supporting atomic actions.
Key words and phrasesObject-oriented programming Concurrency control Reliability Atomic actions Type-inheritance
Unable to display preview. Download preview PDF.
- Best and Randell 81.
- Birman 86.
- Dasgupta et al. 85_Dasgupta, P., R.J. LeBlanc Jr., and E. Spafford, “The Clouds Project: Designing and Implementing a Fault Tolerant, Distributed Operating System,” Technical Report GIT-ICS-85/29, Georgia Institute of Technology, 1985.Google Scholar
- Dixon 88.Dixon, G.N., “Managing Objects for Persistence and Recoverability,” Ph.D Thesis, Computing Laboratory, University of Newcastle upon Tyne, in preparation.Google Scholar
- Dixon and Shrivastava 87.Dixon, G.N., and S.K. Shrivastava, “Exploiting Type-Inheritance Facilities to Implement Recoverability in Object Based Systems”, Proceedings of 6th Symposium on Reliability in Distributed Software and Database Systems, Williamsburg, pp. 107–114, March 1986.Google Scholar
- Dixon et al. 87Dixon, G.N., S.K. Shrivastava, and G.D. Parrington, “Managing Persistent Objects in Arjuna: A System for Reliable Distributed Computing,” Proceedings of the Workshop on Persistent Object Systems, Persistent Programming Research Report 44, Department of Computational Science, University of St. Andrews, August 1987.Google Scholar
- Eswaran et al. 76
- Gray 78.Gray, J.N., “Notes on Data Base Operating Systems”, in Operating Systems: An Advanced Course, eds. R. Bayer, R.M. Graham, and G. Seegmueller, pp. 393–481, Springer, 1978.Google Scholar
- Herlihy 86.Herlihy, M.P., “Optimistic Concurrency Control for Abstract Data Types”, Proceedings of the Fifth Annual ACM Symposium on Principles of Distributed Computing, pp. 206–216, Calgary, Alberta, August 1986.Google Scholar
- Herlihy and Wing 86.Herlihy, M.P., and J.M. Wing, “Avalon: Language Support for Reliable Distributed Systems,” Digest of Papers FTCS-17: Seventeenth Annual International Symposium on Fault-Tolerant Computing, pp. 89–94, Pittsburgh, July 1987.Google Scholar
- Kung and Robinson 81.
- Liskov and Scheifler 83.
- Parrington 88.Parrington, G.D., “Management of Concurrency in a Reliable Object-Oriented Computing System,” Ph.D Thesis, Computing Laboratory, University of Newcastle upon Tyne, in preparation.Google Scholar
- Schwarz and Spector 84.
- Spector et al. 85
- Stroustrup 86.B. Stroustrup, The C++ Programming Language, Addison Wesley, 1986.Google Scholar
- Weihl 84.Weihl, W., “Specification and Implementation of Atomic Data Types,” Ph.D Thesis, MIT/LCS/TR-314, MIT Laboratory for Computer Science, Cambridge, Mass., March 1984.Google Scholar