Implementing Concurrency Control in Reliable Distributed Object-Oriented Systems

  • Graham D. Parrington
  • Santosh K. Shrivastava
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 322)


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 phrases

Object-oriented programming Concurrency control Reliability Atomic actions Type-inheritance 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Best and Randell 81.
    Best, E., and B. Randell, “A Formal Model of Atomicity in Asynchronous Systems”, Acta Inforrnatica, 16, pp. 93–124, 1981.zbMATHCrossRefGoogle Scholar
  2. Birman 86.
    Birman, K.P., “Replication and Fault Tolerance in the ISIS System”, Proceedings of 10th Symposium on the Principles of Operating Systems, ACM Operating Systems Review, Vol. 19, No. 4, pp. 79–86, 1985.CrossRefGoogle Scholar
  3. 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
  4. 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
  5. 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
  6. Dixon et al. 87
    Dixon, 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
  7. Eswaran et al. 76
    Eswaran, K.P., et al., “On the Notions of Consistency and Predicate Locks in a Database System”, Communications of the ACM, Vol. 19, No. 11, pp. 624–633, 1976.zbMATHCrossRefMathSciNetGoogle Scholar
  8. 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
  9. 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
  10. 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
  11. Kung and Robinson 81.
    Kung, H.T., and J.T. Robinson, “On Optimistic Methods for Concurrency Control”, ACM Transactions on Database Systems, Vol. 6, no. 2, pp. 213–226, June 1981.CrossRefGoogle Scholar
  12. Liskov and Scheifler 83.
    Liskov, B., and R. Scheifler, “Guardians and Actions: Linguistic Support for Robust Distributed Programs”, ACM Transactions on Programming Languages and Systems, Vol. 5, No. 3, pp. 381–404, 1983.zbMATHCrossRefGoogle Scholar
  13. 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
  14. Schwarz and Spector 84.
    Schwarz, P.M., and A.Z. Spector, “Synchronizing Shared Abstract Types”, ACM Transactions on Computer Systems, Vol. 2, No. 3, pp. 223–250, August 1984.CrossRefGoogle Scholar
  15. Spector et al. 85
    Spector, A.Z., et al., “Support for Distributed Transactions in the TABS Prototype”, IEEE Transactions on Software Engineering, Vol. SE-11, No. 6, pp. 520–530. 1985.CrossRefGoogle Scholar
  16. Stroustrup 86.
    B. Stroustrup, The C++ Programming Language, Addison Wesley, 1986.Google Scholar
  17. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Graham D. Parrington
    • 1
  • Santosh K. Shrivastava
    • 1
  1. 1.Computing LaboratoryThe University of Newcastle upon TyneNewcastle upon TyneUK

Personalised recommendations