You are previewing Transaction Processing.
O'Reilly logo
Transaction Processing

Book Description

The key to client/server computing.

Transaction processing techniques are deeply ingrained in the fields of
databases and operating systems and are used to monitor, control and update
information in modern computer systems. This book will show you how large,
distributed, heterogeneous computer systems can be made to work reliably.
Using transactions as a unifying conceptual framework, the authors show how
to build high-performance distributed systems and high-availability
applications with finite budgets and risk.



The authors provide detailed explanations of why various problems occur as
well as practical, usable techniques for their solution. Throughout the book,
examples and techniques are drawn from the most successful commercial and
research systems. Extensive use of compilable C code fragments demonstrates
the many transaction processing algorithms presented in the book. The book
will be valuable to anyone interested in implementing distributed systems
or client/server architectures.

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. The Morgan Kaufmann Series in Data Management Systems
  5. Copyright
  6. Foreword
  7. Preface
  8. PART ONE: The Basics of Transaction Processing
    1. Chapter 1: Introduction
      1. 1.1 Historical Perspective
      2. 1.2 What Is a Transaction Processing System?
      3. 1.3 A Transaction Processing System Feature List
      4. 1.4 Summary
      5. 1.5 Historical Notes
      6. Exercises
      7. Answers
    2. Chapter 2: Basic Computer System Terms
      1. 2.1 Introduction
      2. 2.2 Basic Hardware
      3. 2.3 Basic Software—Address Spaces, Processes, Sessions
      4. 2.4 Generic System Issues
      5. 2.5 Files
      6. 2.6 Software Performance
      7. 2.7 Transaction Processing Standards
      8. 2.8 Summary
      9. Exercises
      10. Answers
  9. PART TWO: The Basics of Fault Tolerance
    1. Chapter 3: Fault Tolerance
      1. 3.1 Introduction
      2. 3.2 Definitions
      3. 3.3 Empirical Studies
      4. 3.4 Typical Module Failure Rates
      5. 3.5 Hardware Approaches to Fault Tolerance
      6. 3.6 Software Is the Problem
      7. 3.7 Fault Model and Software Fault Masking
      8. 3.8 General Principles
      9. 3.9 A Cautionary Tale—System Delusion
      10. 3.10 Summary
      11. 3.11 Historical Notes
      12. Exercises
      13. Answers
  10. PART THREE: Transaction-Oriented Computing
    1. Chapter 4: Transaction Models
      1. 4.1 Introduction
      2. 4.2 Atomic Actions and Flat Transactions
      3. 4.3 Spheres of Control
      4. 4.4 A Notation for Explaining Transaction Models
      5. 4.5 Flat Transaction with Savepoints
      6. 4.6 Chained Transactions
      7. 4.7 Nested Transactions
      8. 4.8 Distributed Transactions
      9. 4.9 Multi-Level Transactions
      10. 4.10 Open Nested Transactions
      11. 4.11 Long-Lived Transactions
      12. 4.12 Exotics
      13. 4.13 Summary
      14. 4.14 Historical Notes
      15. Exercises
      16. Answers
    2. Chapter 5: Transaction Processing Monitors: An Overview
      1. 5.1 Introduction
      2. 5.2 The Role of TP Monitors in Transaction Systems
      3. 5.3 The Structure of a TP Monitor
      4. 5.4 Transactional Remote Procedure Calls: The Basic Idea
      5. 5.5 Examples of the Transaction-Oriented Programming Style
      6. 5.6 Terminological Wrap-Up
      7. 5.7 Historical Notes
      8. Exercises
      9. Answers
    3. Chapter 6: Transaction Processing Monitors
      1. 6.1 Introduction
      2. 6.2 Transactional Remote Procedure Calls
      3. 6.3 Functional Principles of the TP Monitor
      4. 6.4 Managing Request and Response Queues
      5. 6.5 Other Tasks of the TP Monitor
      6. 6.6 Summary
      7. 6.7 Historical Notes
      8. Exercises
      9. Answers
  11. PART FOUR: Concurrency Control
    1. Chapter 7: Isolation Concepts
      1. 7.1 Overview
      2. 7.2 Introduction to Isolation
      3. 7.3 The Dependency Model of Isolation
      4. 7.4 Isolation: The Application Programmer’s View
      5. 7.5 Isolation Theorems
      6. 7.6 Degrees of Isolation
      7. 7.7 Phantoms and Predicate Locks
      8. 7.8 Granular Locks
      9. 7.9 Locking Heuristics
      10. 7.10 Nested Transaction Locking
      11. 7.11 Scheduling and Deadlock
      12. 7.12 Exotics
      13. 7.13 Summary
      14. 7.14 Historical Notes
      15. Exercises
      16. Answers
    2. Chapter 8: Lock Implementation
      1. 8.1 Introduction
      2. 8.2 Atomic Machine Instructions
      3. 8.3 Semaphores
      4. 8.4 Lock Manager
      5. 8.5 Deadlock Detection
      6. 8.6 Locking for Parallel and Parallel Nested Transactions
      7. 8.7 Summary
      8. 8.8 Historical Notes
      9. Exercises
      10. Answers
  12. PART FIVE: Recovery
    1. Chapter 9: Log Manager
      1. 9.1 Introduction
      2. 9.2 Log Tables
      3. 9.3 Public Interface to the Log
      4. 9.4 Implementation Details of Log Reads and Writes
      5. 9.6 Archiving the Log
      6. 9.7 Logging in a Client-Server Architecture
      7. 9.8 Summary
      8. 9.9 Historical Notes
      9. Exercises
      10. Answers
    2. Chapter 10: Transaction Manager Concepts
      1. 10.1 Introduction
      2. 10.2 Transaction Manager Interfaces
      3. 10.3 Transactional Resource Manager Concepts
      4. 10.4 Two-Phase Commit: Making Computations Atomic
      5. 10.5 Summary
      6. 10.6 Historical Notes
      7. Exercises
      8. Answers
    3. Chapter 11: Transaction Manager Structure
      1. 11.1 Introduction
      2. 11.2 Normal Processing
      3. 11.3 Checkpoint
      4. 11.4 System Restart
      5. 11.5 Resource Manager Failure and Restart
      6. 11.6 Archive Recovery
      7. 11.7 Configuring the Transaction Manager
      8. 11.8 Summary
      9. Exercises
      10. Answers
    4. Chapter 12: Advanced Transaction Manager Topics
      1. 12.1 Introduction
      2. 12.2 Heterogeneous Commit Coordinators
      3. 12.3 Highly Available (Non-Blocking) Commit Coordinators
      4. 12.4 Transfer-of-Commit
      5. 12.5 Optimizations of Two-Phase Commit
      6. 12.6 Disaster Recovery at a Remote Site
      7. 12.7 Summary
      8. 12.8 Historical Notes
      9. Exercises
      10. Answers
  13. PART SIX: Transactional File System: A Sample Resource Manager
    1. Chapter 13: File and Buffer Management
      1. 13.1 Introduction
      2. 13.2 The File System as a Basis for Transactional Durable Storage
      3. 13.3 Media and File Management
      4. 13.4 Buffer Management
      5. 13.5 Exotics
      6. 13.6 Summary
      7. 13.7 Historical Notes
      8. Exercises
      9. Answers
    2. Chapter 14: The Tuple-Oriented File System
      1. 14.1 Introduction
      2. 14.2 Mapping Tuples into Pages
      3. 14.3 Physical Tuple Management
      4. 14.4 File Organization
      5. 14.5 Exotics
      6. 14.6 Summary
      7. Exercises
      8. Answers
    3. Chapter 15: Access Paths
      1. 15.1 Introduction
      2. 15.2 Overview of Techniques to Implement Associative Access Paths
      3. 15.3 Associative Access by Hashing
      4. 15.4 B-Trees
      5. 15.5 Sample Implementation of Some Operations on B-Trees
      6. 15.6 Exotics
      7. 15.7 Summary
      8. 15.8 Historical Notes20
      9. Exercises
      10. Answers
  14. PART SEVEN: System Surveys
    1. Chapter 16: Survey of TP Systems
      1. 16.1 Introduction
      2. 16.2 IMS
      3. 16.3 CICS and LU6.2
      4. 16.4 Guardian 90
      5. 16.5 DECdta
      6. 16.6 X/Open DTP, OSI-TP, CCR
      7. 16.7 Other Systems
      8. 16.8 Summary
  15. PART EIGHT: Addenda
    1. Chapter 17: References
    2. Chapter 18: Interface Declarations
    3. Glossary
    4. Index
    5. Units and Performance Figures (Price and performance figures based on 1991 estimates)