Abstract
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.
This work was supported by the Defense Advanced Research Projects Agency, ARPA Order No. 4976, monitored by the Air Force Avionics Laboratory under Contract F33615-84-K-1520, and the IBM Corporation.
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
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.
James E. Allchin. An Architecture for Reliable Distributed Systems. PhD thesis, Georgia Institute of Technology, September, 1983.
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.
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.
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.
Philip A. Bernstein, Nathan Goodman. Concurrency Control in Distributed Database Systems. ACM Computing Surveys 13(2):185–221, June, 1981.
Joshua J. Bloch. A Practical, Efficient Approach to Replication of Abstract Data Objects. November, 1986. Carnegie Mellon Thesis Proposal.
David R. Cheriton. The V Kernel: A Software Base for Distributed Systems. IEEE Software 1(2):186–213, April, 1984.
The Guide to the Camelot Distributed Transaction Facility Release O Pittsburgh, PA, 1987. Under development.
Eric C. Cooper. C Threads. June, 1986. Carnegie Mellon Internal Memo.
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.
Dean S. Daniels, Alfred Z. Spector, Dean Thompson. Distributed Logging for Transaction Processing. Technical Report CMU-CS-86-106, Carnegie-Mellon University, June, 1986.
C. J. Date. The System Programming Series: An Introduction to Database Systems Volume 2. Addison-Wesley, Reading, MA, 1983.
Reference Manual for the Ada Programming Language July 1982 edition, Department of Defense, Ada Joint Program Office, Washington, DC, 1982.
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.
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.
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.
R. S. Fabry. Capability-Based Addressing. Communications of the ACM 17(7):403–411, July, 1974.
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.
James N. Gray. The Transaction Concept: Virtues and Limitations. In Proceedings of the Very Large Database Conference, pages 144–154. September, 1981.
James N. Gray, et al. The Recovery Manager of the System R Database Manager. ACM Computing Surveys 13(2):223–242, June, 1981.
Theo Haerder, Andreas Reuter. Principles of Transaction-Oriented Database Recovery. ACM Computing Surveys 15(4):287–318, December, 1983.
Pat Helland. Transaction Monitoring Facility. Database Engineering 8(2):9–18, June, 1985.
Maurice P. Herlihy. Availability vs. atomicity: concurrency control for replicated data. Technical Report CMU-CS-85-108, Carnegie-Mellon University, February, 1985.
M. P. Herlihy, J. M. Wing. Avalon: Language Support for Reliable Distributed Systems. Technical Report CMU-CS-86-167, Carnegie Mellon University, November, 1986.
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.
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.
Henry F. Korth. Locking Primitives in a Database System. Journal of the ACM 30(1):55–79, January, 1983.
Leslie Lamport. Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM 21 (7):558–565, July, 1978.
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.
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.
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.
Barbara Liskov. On Linguistic Support for Distributed Programs. IEEE Transactions on Software Engineering SE-8(3):203–210, May, 1982.
Barbara Liskov. Overview of the Argus Language and System. Programming Methodology Group Memo 40, Massachusetts Institute of Technology Laboratory for Computer Science, February, 1984.
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.
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.
David B. Lomet. Process Structuring, Synchronization, and Recovery Using Atomic Actions. ACM SIGPLAN Notices 12(3), March, 1977.
Raymond A. Lorie. Physical Integrity in a Large Segmented Database. ACM Transactions on Database Systems 2(1):91–104, March, 1977.
J. Eliot B. Moss. Nested Transactions: An Approach to Reliable Distributed Computing. PhD thesis, Massachusetts Institute of Technology, April, 1981.
Ron Obermarck. Distributed Deadlock Detection Algorithm. ACM Transactions on Database Systems 7(2):187–208, June, 1982.
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.
Richard F. Rashid. Threads of a New System. Unix Review 4(8):37–49, August, 1986.
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.
David P. Reed. Naming and Synchronization in a Decentralized Computer System. PhD thesis, Massachusetts Institute of Technology, September, 1978.
Andreas Reuter. Performance Analysis of Recovery Techniques. ACM Transactions on Database Systems 9(4):526–559, December, 1984.
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.
Jerome H. Saltzer. Protection and the Control of Information in Multics. Communications of the ACM 17(7), July, 1974.
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.
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.
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.
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.
Alfred Z. Spector, Dan Duchamp, Jeffrey L. Eppinger, Sherri G. Menees, Dean S. Thompson. The Camelot Interface Specification. September, 1986. Camelot Working Memo 2.
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.
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.
Michael Stonebraker. Virtual Memory Transaction Management. Operating Systems Review 18(2):8–16, April, 1984.
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.
ENCOMPASS Distributed Data Management System Tandem Computers, Inc., Cupertino, California, 1982.
Dean Thompson. Coding Standards for Camelot. June, 1986. Camelot Working Memo 1.
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.
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.
William E. Weihl. Specification and Implementation of Atomic Data Types. PhD thesis, Massachusetts Institute of Technology, March, 1984.
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.
R. Williams, etal. R*: An Overview of the Architecture. IBM Research Report RJ3325, IBM Research Laboratory, San Jose, California, December, 1981.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Spector, A.Z. (1987). Distributed Transaction Processing and The Camelot System. In: Paker, Y., Banatre, JP., Bozyiğit, M. (eds) Distributed Operating Systems. NATO ASI Series, vol 28. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-46604-5_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-46604-5_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-46606-9
Online ISBN: 978-3-642-46604-5
eBook Packages: Springer Book Archive