Chapter 1: Introduction, Motivation & Overview Flashcards
Working definition for this course Distributed Systems
A distributed system is a system that is comprised of several physically disjoint compute resources interconnected by a network.
Leslie Lamport’s anecdotal remark
• “A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable
Why build a distributed system?
- Centralized system is simpler in all respects
- Scalability limitations
- Single point of failure
- Availability and redundancy
- Many resources are inherently distributed
- Many resources used in a shared fashion
DS Challenges
- How to keep server replicas consistent?
- How to detect failures?
- How many failures can a given design tolerate?
- What kind of failures can it tolerate?
- How to recover from failures?
Tiered architecture
- Client - Web Server - DB
- Web server, application server, database server
Multi‐tiered architecture
- Data persistence tier
- Business logic tier
- Presentation tier
- Client
N‐tiered architecture
- Client‐server architecture style
- Requests pass through tiers in a linear fashion
- Logical and physical separation of functions
- Typical function of each tier
- Presentation (user interface)
- Application processing (business logic)
- Data management (data persistence)
- Predominantly used is the 3‐tiered architecture
- Fosters flexibility, re‐usability, modularity, separation of concerns
- Tiers can be more independently modified, upgraded and replaced
- Layers vs. tiers
- Logical structuring of software vs.
- Physical structure of infrastructure
Summary: Distribute systems examples
- Client‐server model
- Multi‐tiered enterprise architectures
- Cyber‐physical systems
- Power grid and smart power grid – Cellular networks
- ATM and banking networks
- Large‐scale distributed systems
- Distributed application
Characteristics of distributed systems
- Reliable
- Fault‐tolerant
- Highly available
- Recoverable
- Consistent
- Scalable
- Predictable performance
- Secure
- Heterogeneous
- Open
Reliability
- Probability of a system to perform its required functions under stated conditions for a specified period of time
- To run continuously without failure
- Expressed as MTBF, failure rate
Availability & high‐availability
- Proportion of time a system is in a functioning state, i.e., can be used, also as 1 – unavailable
- Ratio of time usable over entire time
- Informally, uptime / (uptime + downtime)
- System that can be used 100 hrs out of 168 hrs has availability of 100/168
- System could be up, but not usable (outage!)
- Specified as decimal or percentage
- Five nines is 0.99999 or 99.999% available
- 1x9 = 36,5 days, 4x9 = 52,56 min 6x9 = 31,5s
Availability is not equal to reliability
- System going down 1 ms every 1 hr has an availability of more than 99.9999%
- Highly available, but also highly unreliable
- A system that never crashes, but is taken
down for two weeks
* **Highly reliable**, but only about **96% available**
Middleware NN
Middleware comprises services and abstractions that facilitate the design, development, and deployment of distributed applications in heterogeneous, networked environments.
Example abstractions: Remote invocation, messaging, publish/subscribe, TP monitor, locking service, etc.
Examples: DCE, CORBA, RMI, JMS, Web services, etc.
- Constitutes building blocks
- Captures common functionalities
- Message passing, remote invocation
- Message queuing, publish/subscribe
- Transaction processing
- Naming, directory, security provisions
- Fault‐tolerance, consistent views
- Replication, availability
- Deals with interoperability
- Deals with system integration
- Not directly covered in this course
Middleware stack NN
Application layer
Middleware layer
Networking layers (Transport, etc.)
Fallacies of distributed systems design
- Assumptions (novice )designers of distributed systems often make that turn out to be false
- Originated in 1994 by Peter Deutsch, SunFellow, Sun Microsystems
- Also see“A Note on Distributed Computing”
-
The 8 fallacies
- The network is reliable.
- Topology doesn’t change.
- Latency is zero.
- There is one administrator.
- Bandwidth is infinite.
- Transport cost is zero.
- The network is secure.
- The network is homogeneous