| |
| |
Figure List | |
| |
| |
Preface | |
| |
| |
Introduction | |
| |
| |
| |
Concepts and Architecture | |
| |
| |
| |
Scaling Concepts | |
| |
| |
What Is Scaling? | |
| |
| |
Speedup | |
| |
| |
Concurrency (Scaleup) | |
| |
| |
Latches and Locks | |
| |
| |
Why Lock? | |
| |
| |
Things That Need Locking Latching | |
| |
| |
Waiting on Latches and Locks | |
| |
| |
Design Considerations to Reduce Lock Contention | |
| |
| |
Linked Lists | |
| |
| |
What Is a Linked List? | |
| |
| |
What Are Linked Lists Used For? | |
| |
| |
Optimizing Chain Lengths | |
| |
| |
Hashing | |
| |
| |
What Is Hashing? | |
| |
| |
Caching | |
| |
| |
Cache Fundamentals | |
| |
| |
Memory Hierarchies | |
| |
| |
Cache Reference Patterns | |
| |
| |
I O Caching | |
| |
| |
CPU Cache Concepts | |
| |
| |
| |
| |
| |
Further Reading | |
| |
| |
| |
Hardware Architectures and I O Subsystems | |
| |
| |
Introduction to Hardware Architectures | |
| |
| |
System Interconnects | |
| |
| |
Bus Architecture | |
| |
| |
Direct Memory Access (DMA) | |
| |
| |
Cache Coherency | |
| |
| |
Single Processor Architectures (Uniprocessors) | |
| |
| |
Advantages | |
| |
| |
Oracle on Uniprocessors | |
| |
| |
Other Disadvantages | |
| |
| |
Summary | |
| |
| |
Symmetric Multiprocessors (SMPs) | |
| |
| |
SMP Advantages | |
| |
| |
Kernel Challenges | |
| |
| |
Oracle on SMP Architectures | |
| |
| |
Shared-Bus Limitations | |
| |
| |
Summary | |
| |
| |
Point-to-Point SMP | |
| |
| |
Cache Coherency | |
| |
| |
Summary | |
| |
| |
Clustered SMP | |
| |
| |
Clustering Types | |
| |
| |
Summary | |
| |
| |
Massively Parallel Processors (MPPs) | |
| |
| |
Definition | |
| |
| |
Oracle on MPP Systems | |
| |
| |
Summary | |
| |
| |
Cache Coherent Nonuniform Memory Access (ccNUMA) | |
| |
| |
Definition | |
| |
| |
Sequent NUMA-Q 20 | |
| |
| |
SGI Origin 20 | |
| |
| |
Oracle on NUMA Systems | |
| |
| |
Summary | |
| |
| |
Storage Systems | |
| |
| |
I O Busses | |
| |
| |
Controllers | |
| |
| |
Disk Drives | |
| |
| |
Disk Drive Sizing | |
| |
| |
Redundancy | |
| |
| |
RAID Levels | |
| |
| |
RAID-5 Cached Disk Arrays: EMC Symmetrix | |
| |
| |
| |
| |
| |
Further Reading | |
| |
| |
| |
Building Support Software | |
| |
| |
| |
Benchmark Concepts and Design | |
| |
| |
Why Develop a Benchmark? | |
| |
| |
Capacity Planning | |
| |
| |
Upgrades | |
| |
| |
Platform Changes | |
| |
| |
What Are We Simulating? | |
| |
| |
Defining Application Areas | |
| |
| |
Defining the Application Split | |
| |
| |
Careful with Those Assumptions, Eugene | |
| |
| |
Selecting a Development Approach | |
| |
| |
Using Remote Terminal Emulation Software | |
| |
| |
Custom Simulation Development | |
| |
| |
Building a Simulator Using RTE Software | |
| |
| |
Building a Custom Benchmark Suite | |
| |
| |
Programming Environment | |
| |
| |
When the Application Has Not Been Written | |
| |
| |
If the Application Exists: Trap and Emulate All SQL Calls | |
| |
| |
Using Tracefiles to Generate a Simulation: An Introduction to dbaman | |
| |
| |
Validate Server-Side System Utilization | |
| |
| |
Building a Multiuser Framework | |
| |
| |
Scale the Simulator | |
| |
| |
Data Problems | |
| |
| |
User Control Problems | |
| |
| |
Simpler Methods for Use with dbaman | |
| |
| |
Make It Easy to Run | |
| |
| |
Portability | |
| |
| |
Packaging | |
| |
| |
Start-Up Scripts | |
| |
| |
Automating Information Retrieval at Closedown | |
| |
| |
Define Limitations in Advance | |
| |
| |
A Benchmark Is Never Perfect | |
| |
| |
Measure the Impact of the Inaccuracies | |
| |
| |
| |
| |
| |
Further Reading | |
| |
| |
| |
System Database Monitoring | |
| |
| |
Why Monitor? | |
| |
| |
Proactive Fault Detection | |
| |
| |
Rapi | |