Distributed Transaction Processing and The Camelot System

  • Alfred Z. Spector
Part of the NATO ASI Series book series (volume 28)


This paper describes distributed transaction processing, a technique used for simplifying the construction of reliable distributed systems. After introducing transaction processing, the paper presents models describing the structure of distributed systems, the transactional computations on them, and the layered software architecture that supports those computations. The software architecture model contains five layers, including an intermediate layer that provides a common set of useful functions for supporting the highly reliable operation of system services, such as data management, file management, and mail. The functions of this layer can be realized in what is termed a distributed transaction facility. The paper then describes one such facility — Camelot. Camelot provides flexible and high performance commit supervision, disk management, and recovery mechanisms that are useful for implementing a wide class of abstract data types, including large databases. It runs on the Unix-compatible Mach operating system and uses the standard Arpanet IP communication protocols. Presently, Camelot runs on RT PC’s and Vaxes, but it should also run on other computers including shared-memory multiprocessors.


Processing Node Transaction Processing Transaction Management Deadlock Detection Operating System Kernel 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Accetta et al. 86]
    Mike Accetta, Robert Baron, William Bolosky, David Golub, Richard Rashid, Avadis Tevanian, Michael Young. Mach: A New Kernel Foundation for UNIX Development. In Proceedings of Summer Usenix. July, 1986.Google Scholar
  2. [Allchin 83]
    James E. Allchin. An Architecture for Reliable Distributed Systems. PhD thesis, Georgia Institute of Technology, September, 1983.Google Scholar
  3. [Allchin and McKendry 83]
    James E. Allchin, Martin S. McKendry. Facilities for Supporting Atomicity in Operating Systems. Technical Report GIT-CS-83/1, Georgia Institute of Technology, January, 1983.Google Scholar
  4. [Astrahan et al. 76]
    M. M. Astrahan, M. W. Blasgen, D. D. Chamberlin, K. P. Eswaran, J. N. Gray, P. P. Griffiths, W. F. King, R. A. Lorie, P. R. McJones, J. W. Mehl, G. R. Putzolu, I. L. Traiger, B. W. Wade, and V. Watson. System R: A Relational Approach to Database Management. ACM Transactions on Database Systems 1(2), June, 1976.Google Scholar
  5. [Banatre et al. 83]
    J. P. Banatre, M. Banatre, F. Ployette. Construction of a Distributed System Supporting Atomic Transactions. In Proceedings of the Third Symposium on Reliability in Distributed Software and Database Systems. IEEE, October, 1983.Google Scholar
  6. [Bernstein and Goodman 81]
    Philip A. Bernstein, Nathan Goodman. Concurrency Control in Distributed Database Systems. ACM Computing Surveys 13(2):185–221, June, 1981.CrossRefGoogle Scholar
  7. [Bloch 86]
    Joshua J. Bloch. A Practical, Efficient Approach to Replication of Abstract Data Objects. November, 1986. Carnegie Mellon Thesis Proposal.Google Scholar
  8. [Cheriton84]
    David R. Cheriton. The V Kernel: A Software Base for Distributed Systems. IEEE Software 1(2):186–213, April, 1984.Google Scholar
  9. [CMU 87]
    The Guide to the Camelot Distributed Transaction Facility Release O Pittsburgh, PA, 1987. Under development.Google Scholar
  10. [Cooper 86]
    Eric C. Cooper. C Threads. June, 1986. Carnegie Mellon Internal Memo.Google Scholar
  11. [Dahl and Hoare 72]
    O.J. Dahl, C. A. R. Hoare. Hierarchical Program Structures. In C. A. R. Hoare (editor), A.P.I.C. Studies in Data Processing. Volume 8: Structured Programming, chapter 3, pages 175–220. Academic Press, London and New York, 1972.Google Scholar
  12. [Daniels et al. 86]
    Dean S. Daniels, Alfred Z. Spector, Dean Thompson. Distributed Logging for Transaction Processing. Technical Report CMU-CS-86-106, Carnegie-Mellon University, June, 1986.Google Scholar
  13. [Date 83]
    C. J. Date. The System Programming Series: An Introduction to Database Systems Volume 2. Addison-Wesley, Reading, MA, 1983.Google Scholar
  14. [Department of Defense 82]
    Reference Manual for the Ada Programming Language July 1982 edition, Department of Defense, Ada Joint Program Office, Washington, DC, 1982.Google Scholar
  15. [Diel et al. 84]
    Hans Diel, Gerald Kreissig, Norbet Lenz, Michael Scheible, Bernd Schoener. Data Management Facilities of an Operating System Kernel. In Sigmod ’84, pages 58–69. June, 1984.Google Scholar
  16. [Dwork and Skeen 83]
    Cynthia Dwork, Dale Skeen. The Inherent Cost of Nonblocking Commitment. In Proceedings of the Second Annual Symposium on Principles of Distributed Computing, pages 1–11. ACM, August, 1983.Google Scholar
  17. [Eppinger and Spector 85]
    Jeffrey L. Eppinger, Alfred Z. Spector. Virtual Memory Management for Recoverable Objects in the TABS Prototype. Technical Report CMU-CS-85-163, Carnegie-Mellon University, December, 1985.Google Scholar
  18. [Fabry 74]
    R. S. Fabry. Capability-Based Addressing. Communications of the ACM 17(7):403–411, July, 1974.CrossRefGoogle Scholar
  19. [Gray 78]
    James N. Gray. Notes on Database Operating Systems. In R. Bayer, R. M. Graham, G. Seegmuller (editors), Lecture Notes in Computer Science. Volume 60: Operating Systems — An Advanced Course, pages 393–431.Springer-Verlag, 1978. Also available as Technical Report RJ2188, IBM Research Laboratory, San Jose, California, 1978.Google Scholar
  20. [Gray 81]
    James N. Gray. The Transaction Concept: Virtues and Limitations. In Proceedings of the Very Large Database Conference, pages 144–154. September, 1981.Google Scholar
  21. [Gray et al. 81]
    James N. Gray, et al. The Recovery Manager of the System R Database Manager. ACM Computing Surveys 13(2):223–242, June, 1981.CrossRefGoogle Scholar
  22. [Haerder and Reuter 83]
    Theo Haerder, Andreas Reuter. Principles of Transaction-Oriented Database Recovery. ACM Computing Surveys 15(4):287–318, December, 1983.CrossRefGoogle Scholar
  23. [Heiland 85]
    Pat Helland. Transaction Monitoring Facility. Database Engineering 8(2):9–18, June, 1985.Google Scholar
  24. [Herlihy 85]
    Maurice P. Herlihy. Availability vs. atomicity: concurrency control for replicated data. Technical Report CMU-CS-85-108, Carnegie-Mellon University, February, 1985.Google Scholar
  25. [Herlihy and Wing 86]
    M. P. Herlihy, J. M. Wing. Avalon: Language Support for Reliable Distributed Systems. Technical Report CMU-CS-86-167, Carnegie Mellon University, November, 1986.Google Scholar
  26. [Jones et al. 85]
    Michael B. Jones, Richard F. Rashid, Mary R. Thompson. Matchmaker: An Interface Specification Language for Distributed Processing. In Proceedings of the Twelfth Annual Symposium on Principles of Programming Languages, pages 225–235. ACM, January, 1985.Google Scholar
  27. [Joy et al. 83]
    William Joy, Eric Cooper, Robert Fabry, Samuel Leffler, Kirk McKusick, David Mosher. 4.2 BSD System Interface Overview. Technical Report CSRG TR/5, University of California Berkeley, July, 1983.Google Scholar
  28. [Korth 83]
    Henry F. Korth. Locking Primitives in a Database System. Journal of the ACM 30(1):55–79, January, 1983.MathSciNetzbMATHCrossRefGoogle Scholar
  29. [Lamport 78]
    Leslie Lamport. Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM 21 (7):558–565, July, 1978.zbMATHCrossRefGoogle Scholar
  30. [Lampson 81]
    Butler W. Lampson. Atomic Transactions. In G. Goos and J. Hartmanis (editors), Lecture Notes in Computer Science. Volume 105: Distributed Systems — Architecture and Implementation: An Advanced Course, chapter 11,, pages 246–265.Springer-Verlag, 1981.Google Scholar
  31. [Lindsay et al. 79]
    Bruce G. Lindsay, et al. Notes on Distributed Databases. Technical Report RJ2571, IBM Research Laboratory, San Jose, California, July, 1979. Also appears in Droffen and Poole (editors), Distributed Databases, Cambridge University Press, 1980.Google Scholar
  32. [Lindsay et al. 84]
    Bruce G. Lindsay, Laura M. Haas, C. Mohan, Paul F. Wilms, Robert A. Yost. Computation and Communication in R*: A Distributed Database Manager. ACM Transactions on Computer Systems 2(1):24–38, February, 1984.CrossRefGoogle Scholar
  33. [Liskov82]
    Barbara Liskov. On Linguistic Support for Distributed Programs. IEEE Transactions on Software Engineering SE-8(3):203–210, May, 1982.CrossRefGoogle Scholar
  34. [Liskov 84]
    Barbara Liskov. Overview of the Argus Language and System. Programming Methodology Group Memo 40, Massachusetts Institute of Technology Laboratory for Computer Science, February, 1984.Google Scholar
  35. [Liskov and Herlihy 83]
    Barbara Liskov, Maurice Herlihy. Issues in Process and Communication Structure for Distributed Programs. In Proceedings of the Third Symposium on Reliability in Distributed Software and Database Systems. October, 1983.Google Scholar
  36. [Liskov and Scheifler 83]
    Barbara H. Liskov, Robert W. Scheifler. Guardians and Actions: Linguistic Support for Robust, Distributed Programs. ACM Transactions on Programming Languages and Systems 5(3):381–404, July, 1983.zbMATHCrossRefGoogle Scholar
  37. [Lomet 77]
    David B. Lomet. Process Structuring, Synchronization, and Recovery Using Atomic Actions. ACM SIGPLAN Notices 12(3), March, 1977.Google Scholar
  38. [Lorie 77]
    Raymond A. Lorie. Physical Integrity in a Large Segmented Database. ACM Transactions on Database Systems 2(1):91–104, March, 1977.CrossRefGoogle Scholar
  39. [Moss 81]
    J. Eliot B. Moss. Nested Transactions: An Approach to Reliable Distributed Computing. PhD thesis, Massachusetts Institute of Technology, April, 1981.Google Scholar
  40. [Obermarck 82]
    Ron Obermarck. Distributed Deadlock Detection Algorithm. ACM Transactions on Database Systems 7(2):187–208, June, 1982.CrossRefGoogle Scholar
  41. [Postel 82]
    Jonathan B. Postel. Internetwork Protocol Approaches. In Paul E. Green, Jr. (editor), Computer Network Architectures and Protocols, chapter 18, pages 511–526.Plenum Press, 1982.Google Scholar
  42. [Rashid 86]
    Richard F. Rashid. Threads of a New System. Unix Review 4(8):37–49, August, 1986.Google Scholar
  43. [Rashid and Robertson 81]
    Richard Rashid, George Robertson. Accent: A Communication Oriented Network Operating System Kernel. In Proceedings of the Eighth Symposium on Operating System Principles, pages 64–75. ACM, December, 1981.Google Scholar
  44. [Reed 78]
    David P. Reed. Naming and Synchronization in a Decentralized Computer System. PhD thesis, Massachusetts Institute of Technology, September, 1978.Google Scholar
  45. [Reuter 84]
    Andreas Reuter. Performance Analysis of Recovery Techniques. ACM Transactions on Database Systems 9(4):526–559, December, 1984.CrossRefGoogle Scholar
  46. [Rothnie et al. 80]
    J. B. Rothnie Jr., P. A. Bernstein, S. Fox, N. Goodman, M. Hammer, T. A. Landers, C. Reeve, D. W. Shipman, and E. Wong. Introduction to a System for Distributed Databases (SDD-1). ACM Transactions on Database Systems 5(1):1–17, March, 1980.CrossRefGoogle Scholar
  47. [Saltzer 74]
    Jerome H. Saltzer. Protection and the Control of Information in Multics. Communications of the ACM 17(7), July, 1974.Google Scholar
  48. [Schwarz 84]
    Peter M. Schwarz. Transactions on Typed Objects. PhD thesis, Carnegie-Mellon University, December, 1984. Available as Technical Report CMU-CS-84-166, Carnegie-Mellon University.Google Scholar
  49. [Schwarz and Spector 84]
    Peter M. Schwarz, Alfred Z. Spector. Synchronizing Shared Abstract Types. ACM Transactions on Computer Systems 2(3):223–250, August, 1984. Also available as Technical Report CMU-CS-83-163, Carnegie-Mellon University, November 1983.Google Scholar
  50. [Spector 86]
    Alfred Z. Spector. Communication Support in Operating Systems for Distributed Transactions. In Proc. IBM European Networking Institute 1986. July, 1986. Also available as Technical Report CMU-CS-86-165, Carnegie-Mellon University, November 1986.Google Scholar
  51. [Spector and Schwarz 83]
    Alfred Z. Spector, Peter M. Schwarz. Transactions: A Construct for Reliable Distributed Computing. Operating Systems Review 17(2): 18–35, April, 1983. Also available as Technical Report CMU-CS-82–143, Carnegie-Mellon University, January 1983.Google Scholar
  52. [Spector et al 86]
    Alfred Z. Spector, Dan Duchamp, Jeffrey L. Eppinger, Sherri G. Menees, Dean S. Thompson. The Camelot Interface Specification. September, 1986. Camelot Working Memo 2.Google Scholar
  53. [Spector et al. 85a]
    Alfred Z. Spector, Jacob Butcher, Dean S. Daniels, Daniel J. Duchamp, Jeffrey L. Eppinger, Charles E. Fineman, Abdelsalam Heddaya, Peter M. Schwarz. Support for Distributed Transactions in the TABS Prototype. IEEE Transactions on Software Engineering SE-11 (6):520–530, June, 1985. Also available in Proceedings of the Fourth Symposium on Reliability in Distributed Software and Database Systems, Silver Springs, Maryland, IEEE, October, 1984 and as Technical Report CMU-CS-84–132, Carnegie-Mellon University, July, 1984.CrossRefGoogle Scholar
  54. [Spector et al. 85b]
    Alfred Z. Spector, Dean S. Daniels, Daniel J. Duchamp, Jeffrey L. Eppinger, Randy Pausch. Distributed Transactions for Reliable Systems. In Proceedings of the Tenth Symposium on Operating System Principles, pages 127–146. ACM, December, 1985. Also available in Concurrency Control and Reliability in Distributed Systems, Van Nostrand Reinhold Company, New York, and as Technical Report CMU-CS-85–117, Carnegie-Mellon University, September 1985.Google Scholar
  55. [Stonebraker 84]
    Michael Stonebraker. Virtual Memory Transaction Management. Operating Systems Review 18(2):8–16, April, 1984.CrossRefGoogle Scholar
  56. [Stonebraker and Neuhold 77]
    M. Stonebraker and E. Neuhold. A Distributed Data Base Version of INGRES. In Proceedings of the Second Berkeley Workshop on Distributed Data Management and Computer Networks, pages 19–36. Lawrence Berkeley Lab, University of California, Berkeley, California, May, 1977.Google Scholar
  57. [Tandem 82]
    ENCOMPASS Distributed Data Management System Tandem Computers, Inc., Cupertino, California, 1982.Google Scholar
  58. [Thompson 86]
    Dean Thompson. Coding Standards for Camelot. June, 1986. Camelot Working Memo 1.Google Scholar
  59. [Traiger 82.
    Irving L. Traiger. Virtual Memory Management for Database Systems. Operating Systems Review 16(4):26–48, October, 1982. Also available as Technical Report RJ3489 IBM Research Laboratory, San Jose, California, May, 1982.CrossRefGoogle Scholar
  60. [Watson 81]
    R.W. Watson. Distributed system architecture model. In B.W. Lampson (editors), Lecture Notes in Computer Science. Volume 105: Distributed Systems — Architecture and Implementation: An Advanced Course, chapter 2,, pages 10–43.Springer-Verlag, 1981.Google Scholar
  61. [Weihl 84]
    William E. Weihl. Specification and Implementation of Atomic Data Types. PhD thesis, Massachusetts Institute of Technology, March, 1984.Google Scholar
  62. [Weinstein et al. 85]
    Matthew J. Weinstein, Thomas W. Page, Jr., Brian K. Livezey, Gerald J. Popek. Transactions and Synchronization in a Distributed Operating System. In Proceedings of the Tenth Symposium on Operating System Principles, pages 115–126. ACM, December, 1985.Google Scholar
  63. [Williams et al. 81]
    R. Williams, etal. R*: An Overview of the Architecture. IBM Research Report RJ3325, IBM Research Laboratory, San Jose, California, December, 1981.Google Scholar
  64. [Zimmermann 82]
    Hubert Zimmermann. A Standard Network Model. In Paul E. Green, Jr. (editor), Computer Network Architectures and Protocols, chapter 2, pages 33–54.Plenum Press, 1982.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Alfred Z. Spector
    • 1
  1. 1.Department of Computer ScienceCarnegie Mellon UniversityPittsburghUSA

Personalised recommendations