 |
Principles of Transaction Processing: for the Systems Professional Be the First to Write a Review and tell the world about this title!People who purchase this book frequently purchase: Books on similar topics, in best-seller order:Books from the same publisher, in best-seller order:
Principles of Transaction Processing is a clear, concise guide for anyone
involved in developing applications, evaluating products, designing systems,
or engineering products. This book provides an understanding of the internals of
transaction processing systems, describing how they work and how best to use them.
It includes the architecture of transaction processing monitors, transactional
communications paradigms, and mechanisms for recovering from transaction and
system failures.
Use of transaction processing systems in business, industry, and
government is increasing rapidly; the emergence of electronic commerce on
the Internet is creating new demands. As a result, many developers are
encountering transaction processing applications for the first time and need
a practical explanation of techniques. Software engineers who build and
market operating systems, communications systems, programming tools, and
other products used in transaction processing applications will also benefit
from this thorough presentation of principles. Rich with examples, it
describes commercial transaction processing systems, transactional aspects
of database servers, messaging systems, Internet servers, and
object-oriented systems, as well as each of their subsystems.
Features:
- Easy-to-read descriptions of fundamentals.
- Real world examples illustrating key points.
- Focuses on practical issues faced by developers.
- Explains most major products and standards, including IBM’s CICS, IMS, and MQSeries; X/Open’s XA, STDL, and TX; BEA Systems’ TUXEDO; Digital’s ACMS; Transarc’s Encina; AT&T/NCR’s TOP END; Tandem’s Pathway/TS; OMG’s OTS; and Microsoft’s Microsoft Transaction Server.
Table of Contents
Foreword
Preface
Chapter 1 Introduction
1.1 The Basics
The Problem
What’s a Transaction
Transaction Processing Applications
A Transaction Program’s Main Functions
1.2 The Transaction Processing Systems
1.3 Atomicity, Consistency, Isolation, and Durability
Atomicity
Consistency
Isolation
Durability
1.4 Two-Phase Commit
1.5 Transaction Processing Performance
The TPC-A and TPC-B Benchmarks
The TPC-C Benchmark
1.6 Availability
1.7 Styles of Systems
Batch Processing Systems
Time-Sharing Systems
Real-Time Systems
Client-Server Systems
Decision Support Systems
Why Engineer a Transaction Processing System?
1.8 Example Applications
Automated Teller Machine
Stock Exchange
1.9 Summary
Chapter 2: Transaction Processing Monitors
2.1 Introduction
2.2 Transaction Processing Monitor Architecture
Two-tier vs. Three-tier Systems
Transaction Processing Monitor Functions
Three-tier Applications
Simple Requests
2.3 Presentation Server
Presentation Server Layers
Gathering Input
Constructing Requests
Authentication
Communication
Logging
2.4 Workflow Control
Routing
Workflow Logic
Transaction Bracketing
Exception Handling
2.5 Transaction Servers
2.6 Operating System Processes
Why We Need Threads
Implementing Threads
Mapping Servers to Processes
Server Classes
2.7 Database Servers vs. Transaction Processing Monitors
2.8 Transactions over the Internet
2.9 Summary
Chapter 3: Transaction Processing Communications
3.2 The Remote Procedure Call Model
RPC Programming Model
Transaction Bracketing
Transparent Transaction Identifiers
Binding Clients and Servers
How to Compare RPC Systems
3.3 An RPC Walkthrough
Parameter Translation in RPC
Security of RPC
Fault Tolerance in RPC
Performance of RPC
System Management
3.4 Peer-to-Peer Programming
Programming Interfaces
Syncpoint Rules
An Example
The ISO Transaction Processing Protocol
3.5 Comparing RPC and Peer-to-Peer
Allowed Message Sequences
Termination Model
Connection Model
Current Trends
3.6 Summary
Chapter 4: Queued Transaction Processing
4.1 Why Use Queues?
Problems
Queues as the Solution
4.2 The Queued Transaction Processing Model
Server’s View of Queuing
Client’s View of Queuing
4.3 Client Recovery
4.4 Handling Non-Undoable Operations
4.5 The Queue Manager
Operations on Queue Elements
Routing
IBM’s MQSeries
4.6 Multitransaction Workflow
Motivation for Workflow Applications
Managing Workflow Using Queued Requests
Workflow and Atomicity
4.7 Multitransaction Requests without Queues
Pseudoconversations
Fault-Tolerant Input Using Logging
4.8 Summary
Chapter 5: Transaction Processing Monitor Examples
5.1 Introduction
5.2 CICS
System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.3 IMS
System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.4 Standardization --X/OPEN, OSI, OMG, and MIA/SPIRIT
X/OPEN
OSI Transaction Processing
Object Transaction Service
STDL
5.5 Tuxedo
System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.6 ACMS
System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.7 Encina
System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.8 TOP END
System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.9 Pathways/TS
System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
Chapter 6: Locking
6.1 Introduction
Correctness and the Two-Phase Rule
Automating Locking
6.2 Implementation
Lock Managers
Granularity
Multigranularity Locking
6.3 Deadlocks
Deadlock Prevention
Deadlock Detection
Distributed Deadlock Detection
6.4 Performance
Lock Thrashing
Tuning to Reduce Lock Contention
A Mathematical Model of Locking Performance
6.5 Hot Spots
Delaying Operations Until Commit
Optimistic Methods
Batching
6.6 Query-Update Problems
Degrees of Isolation
Multiversion of Isolation
Multiversion Data
Multiversion Implementation Details
6.7 Avoiding Phantoms
6.8 Other Techniques
6.9 Summary
Appendix - Proof of Two-Phase Locking Theorem
Chapter 7: High Availability
7.1 Introduction
7.2 Causes of Computer Failure
The Environment
System Management
Hardware
Software
7.3 Availability in the Clien/Server Model
Client/Server Architecture
Detecting Process Failures
Client Recovery
Server Recovery
Checkpoint-Based Recovery
Transaction-Based Server Recovery
Stateless Servers
7.4 Using Backups
7.5 Summary
Chapter 8: Database System Recovery
8.1 Introduction
Types of Failure
Recovery Strategies
8.2 The System Model
Locking Assumptions
Storage Model
The Log
8.3 The Recovery Manager
Implementing Abort
Implementing Commit
8.4 Log-Based Recovery Algorithms
Implementing Commit
Implementing Abort
Implementing Restart
8.5 Optimizing Restart in Log-Based Algorithms
Fuzzy Checkpointing
Operation Logging
User Techniques
8.6 Media Failures
8.7 Summary
Chapter 9: Two-Phase Commit
9.1 Introduction
9.2 The Two-Phase Commit Protocol
Assumptions
Being Prepared
The Protocol
Analysis
9.3 Failure Handling
9.4 Optimizations
Presumed Abort
Transfer of Coordination
Reinfection
Read-Only Transactions
Cooperative Termination Protocol
9.5 Process Structuring
Independent Transaction Managers
Enlisting in a Transaction
The Tree-of-Processes Model
9.6 User Checklist
9.7 Summary
Chapter 10: Replication
10.1 Introduction
Goals
Implementation Challenges
10.2 Single-Master Primary-Copy Replication
Normal Operation
Failures and Recoveries
Majority and Quorum Consensus
10.3 Multimaster Replication
Partitioned Operation Can Be Useful
Update Propagation with Multiple Masters
Multimaster Replication Without a Primary
Behavior of Multimaster Replication
10.4 Other Techniques
10.5 Summary
Chapter 11: Conclusion
11.1 Introduction
11.2 Commodization
11.3 Object-Oriented Programming
Specifying Transaction Composition
Optimizing Property Updates
Organizing Functions
Objects as Units of Computation
Negotiating Interfaces
11.4 Nested Transactions
Programming Model
Implementation
Other Exotic Transaction Models
11.5 The Internet and the World Wide Web
11.6 Summary
Bibliographic Notes
Bibliography
Glossary of Acronyms
Index
About the Authors
|
 |