Book description
The goal of this book is to present and compare various options one for systems architecture from two separate points of view. One, that of the information technology decision-maker who must choose a solution matching company business requirements, and secondly that of the systems architect who finds himself between the rock of changes in hardware and software technologies and the hard place of changing business needs.Different aspects of server architecture are presented, from databases designed for parallel architectures to high-availability systems, and touching en route on often- neglected performance aspects.
1. The book provides IT managers, decision makers and project leaders who want to acquire knowledge sufficient to understand the choices made in and capabilities of systems offered by various vendors:
2. Provides system design information to balance the characteristic applications against the capabilities and nature of various architectural choices
3. In addition, it offers an integrated view of the concepts in server architecture, accompanied by discussion of effects on the evolution of the data processing industry.
Table of contents
- Copyright
- Acknowledgements
- About the Author
-
Preface
- Objective of the Book
- A Changing Industry Based on Changing Technology
- Structure of the book
- Origin of the Book
-
Server FAQs
- Given that they are extremely complex to implement, will MPP architectures be confined to scientific and technical markets?
- Are RISC processors dead, killed by Intel?
- What should we think of manufacturers who claim 99.999% availability for their hardware?
- How much longer will system performance continue to increase?
- Compare and contrast the three major multiprocessor architectures: SMP, massively parallel and cluster
- Machine costs decrease every year; how long can this go on?
- Does high availability mean that a fault-tolerant machine is needed?
- When considering the whole system (hardware, software, network and applications) isn’t the cost of the hardware negligible?
- Why were parallel databases a limited success?
- Will UNIX-based clusters continue to offer a comfortable advantage over Windows 2003-based equivalents?
- Introduction
-
1. Architectural Options and Technology Evolution
-
1. Processors and Memory
- 1.1. Semiconductors and Microprocessors
- 1.2. Semiconductor Technology Projections
- 1.3. Economic Aspects of Microprocessors
- 1.4. Embedded Systems
- 1.5. Memory Hierarchy
- 1.6. The Problem of Memory Throughput
- 1.7. Processor—Memory—I/O Interconnect
-
1.8. Parallelism
- Parallel Systems
- Granularity of Parallelism
- Sources of Parallelism
- 1.8.1. Speedup and Scaleup
- 1.8.2. Problems Arising in Multiprocessor Architectures
- 1.8.3. Cache Coherence
- 1.8.4. Models of Memory Consistency
- 1.8.5. Synchronization Mechanisms
- 1.8.6. Examples of Implementing Traditional Synchronization Primitives with the Instruction Pair
- 1.9. Binary Compatibility Constraints—Java and Architecture Retargeting
- 1.10. Compilation and Interpretation
- 1.11. Java
- 1.12. Architecture Retargeting
-
1.13. Microprocessor Evolution
- 1.13.1. Traditional Performance Improvement Techniques
- 1.13.2. Processor Structures: Pipelines and Superscalarity
- 1.13.3. Basic Pipelined Processor
- 1.13.4. Superscalar Processors
- 1.13.5. Comparison of the Superscalar and Deeply-Pipelined Structures
- 1.13.6. VLIW Processor
- 1.13.7. Speculative Execution
- 1.13.8. Out-of-Order Execution and Register Renaming
- 1.13.9. Branch Prediction
- 1.13.10. Dynamic Translation of Code
- 1.13.11. Architecture Evolution
- 1.13.12. Implementation Evolution
- 1.13.13. Trace cache
- 1.14. Economic Factors
- 1.15. Formal Verification
- 1.16. Memory
- 1.17. Endnotes
- 2. I/O
-
3. Evolution of Software Technology
- 3.1. Virtual Memory and 64-Bit Architecture
- 3.2. Operating Systems
-
3.3. Client/Server Applications and Middleware
- 3.3.1. Client/Server Architecture Models and Middleware Components
- 3.3.2. Components of Client/Server Middleware
- 3.3.3. Web Servers
- 3.3.4. Transactional Monitors
- 3.3.5. RPC and Message-Oriented Middleware
- 3.3.6. RPC
- 3.3.7. MOM: Message-Oriented Middleware
- 3.3.8. Distributed Object Model
- 3.3.9. Database Access Techniques
- 3.3.10. Enterprise Java Beans—A Component-Oriented Application Model
- 3.3.11. Intranet, Extranet, Internet
- 3.3.12. Basic Technologies Used in Web Servers
- 3.3.13. Script Languages
- 3.3.14. Mobile Code and Data Exchange
- 3.3.15. Agents
- 3.4. Security
- 3.5. Systems Administration
- 3.6. Software Evolution
- 3.7. Endnotes
-
1. Processors and Memory
-
2. System Architecture Options
-
4. Symmetrical (Tightly-Coupled) Multiprocessors
- 4.1. SMPs: Hardware Limitations
- 4.2. Adapting Software to an SMP
- 4.3. SMP Architectures with a Moderate Number of Processors (<= 8)
-
4.4. Multiprocessors with Many Processors (More than 16)
- 4.4.1. Fujitsu PrimePower
- 4.4.2. HP Superdome
- 4.4.3. IBM pSeries 690
- 4.4.4. IBM eServer z900
- 4.4.5. 16-way Intel Server—Itanium 2 plus E8870 Chipset
- 4.4.6. Sun 3800, 4800, and 6800
- 4.4.7. CC-NUMA and COMA Architectures
- 4.4.8. CC-NUMA Architecture
- 4.4.9. Locality
- 4.4.10. COMA (Cache-Only Memory Architecture)
- 4.5. SMP, CC-NUMA, COMA: a Summary
- 4.6. Performance Improvement Provided by SMP
- 4.7. Advantages and Disadvantages of SMP Architecture
- 4.8. Endnotes
-
5. Clusters and Massively Parallel Machines
- 5.1. Clusters
- 5.2. Advantages and Disadvantages of Cluster Architecture
- 5.3. Massively Parallel Machines (MPP)
- 5.4. Advantages and Disadvantages of MPP Architecture
- 5.5. Networks Used to Build Supercomputers
- 5.6. SMPs, Clusters, and MPPs—a Summary
- 5.7. Flexible SMP-Cluster Architecture
- 5.8. Endnotes
-
6. Data Storage
- 6.1. Data Storage
- 6.2. Storage Issues
- 6.3. Functional Levels: File Systems
- 6.4. Optimized File Systems: Log Structured File System
- 6.5. Parallel File Systems
- 6.6. Remote File Access: NFS, CIFS and DAFS
- 6.7. JBOD, SBOD, and RAID Disk Organization
- 6.8. Storage Virtualization
- 6.9. Scatter Reads and Gather Writes
- 6.10. Comparing the Various RAID Levels
- 6.11. Performance
- 6.12. MAID
- 6.13. Architectural Options for RAID Implementations
- 6.14. Architectural Options for Storage Virtualization
- 6.15. Storage Architectures
- 6.16. The Integration of Fibre Channel and the Internet
- 6.17. Integration of SAN and NAS within a Single Architecture
- 6.18. Storage Architecture Options: Summary
- 6.19. SNIA Architecture Model
- 6.20. Storage Management
-
6.21. Data Compression
- 6.21.1. Data Compression
- 6.21.2. Compression Techniques
- 6.21.3. Dictionary-based Compression
- 6.21.4. Fixed Bit Length Packing
- 6.21.5. Run Length Encoding (RLE)
- 6.21.6. Huffman Encoding
- 6.21.7. Static Huffman Encoding
- 6.21.8. Adaptive Huffman Encoding
- 6.21.9. LZ77 Encoding
- 6.21.10. Lempel-Ziv-Welch Encoding (LZW)
- 6.21.11. Arithmetic Coding
- 6.21.12. Closing Comments
- 6.21.13. Considerations in Implementing Compression
- 6.22. Commercial Storage Subsystems
- 6.23. Data Backup and Restore
- 6.24. Resource Optimization in Backup and Restore
- 6.25. Technologies Supporting Backed-up Data
- 6.26. Data Archiving
- 6.27. Endnotes
-
7. Systems Performance and Estimation Techniques
- 7.1. Systems Performance and Estimation Techniques
- 7.2. Processor-level Performance
- 7.3. Embedded Systems
- 7.4. System-level performance
- 7.5. The TPC
- 7.6. Storage Subsystems Performance
- 7.7. Comparing the Performance of Architectural Approaches
- 7.8. Performance as a First-Class Citizen
- 7.9. Modeling Strategy
- 7.10. Operational Analysis
- 7.11. Empirical Rules of Systems Sizing
- 7.12. Capacity Planning
- 7.13. Endnotes
- 8. DBMS and Server Architectures
- 9. The Terminology of High-Availability Systems
-
10. Hardware and Software Solutions for High Availability
- 10.1. Hardware-based Solutions
-
10.2. Software-based solutions
- 10.2.1. Tandem’s Himalaya S7000 NonStop System
- 10.2.2. UNIX and Windows Cluster Solutions
- 10.2.3. UNIX Cluster Example: IBM’s HACMP
- 10.2.4. Hot standby, or simple failover
- 10.2.5. Mutual takeover or partitioned workload
- 10.2.6. Cluster multiprocessing
- 10.2.7. Microsoft Cluster Server (MSCS)
- 10.2.8. Functional overview of Cluster Services
- 10.2.9. SafeKit
- 10.3. Disaster Recovery
-
10.4. Estimating the Availability of Systems
- 10.4.1. Predicting faults: Failure Modes and Effects Analysis (FMEA) and Failure Tree Analysis (FTA)
- 10.4.2. Failure Modes and Effects Analysis (FMEA)
- 10.4.3. Failure Tree Analysis (FTA)
- 10.4.4. Quantitative estimate of availability
- 10.4.5. Markov Chains
- 10.4.6. Models of growth of the reliability of software
- 10.5. High-Availability Systems: Conclusions
- 10.6. High-Availability Systems: Future Trends
- 10.7. Endnotes
- 11. Selection Criteria and Total Cost of Ownership
- 12. Conclusions and Prospects
-
4. Symmetrical (Tightly-Coupled) Multiprocessors
- Bibliography
Product information
- Title: Server Architectures
- Author(s):
- Release date: December 2004
- Publisher(s): Digital Press
- ISBN: 9780080492292
You might also like
book
Architecture of Network Systems
Architecture of Network Systems explains the practice and methodologies that will allow you to solve a …
book
Embedded Linux
Embedded Linux provides the reader the information needed to design, develop, and debug an embedded Linux …
book
Embedded Linux®: Hardware, Software, and Interfacing
Embedded Linux will help the user: select an Embedded Linux platform based on hardware requirements; build …
book
Rootkits: Subverting the Windows Kernel
"It's imperative that everybody working in the field of cyber-security read this book to understand the …