Workstations running open operating systems and development tools will be the primary environment for transaction processing in the 1990s. People who want to understand the technology for this revolution will need to understand the concepts and techniques described in this book. Camelot and Avalon are landmark systems for reliable distributed transaction processing, showing how transactions can be layered on top of an operating system and integrated with conventional programming languages. Camelot is also one of the first systems based on the client-server model of distributed applications. This is the only complete and detailed presentation of Camelot, including the design decisions, key algorithms used, implementation details, performance characteristics, and relevant material on the Mach operating system and programming tools. Using familiar languages and operating systems (C & C++, UNIX and Mach), Camelot and Avalon provide a complete transaction environment for all uniprocessor and multi-processor applications.
This book offers basic concepts with concrete examples from their implementation, and will provide more experienced readers with a way to view transactional remote procedure calls as the foundation of reliable distributed computations.
Reihe
Sprache
Verlagsort
Verlagsgruppe
Elsevier Science & Technology
Zielgruppe
Für höhere Schule und Studium
Maße
Höhe: 236 mm
Breite: 186 mm
Gewicht
ISBN-13
978-1-55860-185-7 (9781558601857)
Copyright in bibliographic data is held by Nielsen Book Services Limited or its licensors: all rights reserved.
Schweitzer Klassifikation
Part I The Extended Camelot Interface Chapter 1 Introduction to Camelot 1.1 Background 1.2 A Transaction Example 1.3 Overview of the Camelot Distributed Transaction Facility 1.4 Major Camelot Functions 1.5 Camelot from a User's Point of View Chapter 2 An Introduction to Mach for Camelot Users 2.1 Tasks and Threads 2.2 Virtual Memory Management 2.3 Interprocess Communication 2.4 Mach Interface Generator Chapter 3 The Camelot Library 3.1 Introduction 3.2 Using the Camelot Library 3.3 Application Basics 3.4 Server Basics 3.5 Caveats 3.6 Advanced Constructs Chapter 4 Camelot Node Configuration 4.1 Server Maintenance 4.2 Account Maintenance 4.3 Accessing a Remote Node Server 4.4 The Node Server Database 4.5 Commands Listed Chapter 5 A Sample Camelot Application and Server 5.1 Introduction 5.2 Sample Execution 5.3 The Application 5.4 The Server 5.5 Installation Part II The Primitive Camelot Interface Chapter 6 The Structure of Camelot 6.1 The Camelot Architecture 6.2 An Example Message Flow Chapter 7 Mach for Camelot Implementors 7.1 Interprocess Communication 7.2 The External Memory Management Interface 7.3 C Threads Chapter 8 Recoverable Storage Management in Camelot 8.1 Recoverable Segments and Regions 8.2 Initialization 8.3 Mapping 8.4 Forward Processing 8.5 The Shared Memory Queues 8.6 Recovery Processing Chapter 9 Transaction Management in Camelot 9.1 The Nested Transaction Model 9.2 Transaction Services for Applications 9.3 Transaction Services for Servers Chapter 10 Camelot Node Management 10.1 The NA Interface Part III Design Rationale Chapter 11 The Design of Camelot 11.1 Introduction 11.2 Architecture 11.3 Algorithms 11.4 Related Systems Work 11.5 Conclusions Chapter 12 The Design of the Camelot Library 12.1 Introduction 12.2 Architecture 12.3 Related Work 12.4 Conclusions Chapter 13 The Design of the Camelot Local Log Manager 13.1 Introduction 13.2 Architecture 13.3 Algorithms 13.4 Related Work 13.5 Conclusions Chapter 14 The Design of the Camelot Disk Manager 14.1 Introduction 14.2 Architecture 14.3 Algorithms and Data Structures 14.4 Related Work 14.5 Discussion Chapter 15 The Design of the Camelot Recovery Manager 15.1 Introduction 15.2 Architecture 15.3 Algorithms 15.4 Related Work 15.5 Conclusions Chapter 16 The Design of the Camelot Transaction Manager 16.1 Introduction 16.2 Architecture 16.3 Algorithms 16.4 Related Work 16.5 Conclusions Chapter 17 The Design of the Camelot Communication Manager 17.1 Introduction 17.2 Architecture 17.3 Algorithms 17.4 Related Work 17.5 Conclusions Chapter 18 Performance of Select Camelot Functions 18.1 Performance Metrics 18.2 Library Costs 18.3 Recoverable Virtual Memory Costs 18.4 Recovery Costs Part IV The Avalon Language Chapter 19 A Tutorial Introduction to the Avalon Language 19.1 Terminology 19.2 Array of Atomic Integers 19.3 FIFO Queue 19.4 Atomic Counters Chapter 20 Reference Manual 20.1 Lexical Considerations 20.2 Servers 20.3 Base Classes 20.4 Control Structures 20.5 Transmission of Data Chapter 21 Library 21.1 Non-atomic Avalon/C++ Types and Type Generators 21.2 Atomic Types 21.3 Catalog Server Chapter 22 Guidelines for Programmers 22.1 Choosing Identifiers 22.2 Using and Implementing Avalon Types 22.3 Constructing an Avalon Program 22.4 For Experts Only Part V Advanced Features Chapter 23 Common Lisp Interface 23.1 Introduction 23.2 Accessing Camelot Servers from Lisp 23.3 Examples 23.4 The Lisp Recoverable Object Server 23.5 Summary and Future Work Chapter 24 Strongbox 24.1 Introduction 24.2 Design Goals 24.3 Strongbox Architecture 24.4 Converting Camelot Clients and Servers to be Secure 24.5 Secure Loader and White Pages Server 24.6 Interfaces 24.7 Security Algorithms 24.8 Special Issues 24.9 Conclusions Chapter 25 The Design of the Camelot Distributed Log Facility 25.1 Introduction 25.2 Architecture 25.3 Algorithms 25.4 Related Work 25.5 Conclusions Part VI Appendices Appendix A Debugging A.1 Avoiding Bugs A.2 Tools and Techniques Appendix B Abort Codes B.1 System Abort Codes B.2 Library Abort Codes Appendix C Camelot Interface Specification C.1 AT Interface C.2 CA Interface C.3 CS Interface C.4 CT Interface C.5 DL Interface C.6 DN Interface C.7 DR Interface C.8 DS Interface C.9 DT Interface C.10 LD Interface C.11 MD Interface C.12 MR Interface C.13 MT Interface C.14 MX Interface C.15 NA Interface C.16 ND Interface C.17 RD Interface C.18 RT Interface C.19 SR Interface C.20 ST Interface C.21 TA Interface C.22 TC Interface C.23 TD Interface C.24 TR Interface C.25 TS Interface Appendix D Avalon Grammar D.1 Expressions D.2 Declarations D.3 Statements D.4 External Definitions Bibliography Index