Lecture 04 Distributed Systems
Lecture 04 Distributed Systems
March 5, 2001
Distributed Systems
Design Issues
Scaling
Communication
Coordination
Transparency
Naming
Load sharing
Consistency
Failures
Security
Heterogeneity
Mobility
Naming
What do we need to name?
Processes, Services, Hosts, Objects,
Groups, ...
Binding - Discovering and associating a name
to a one of these
e.g., DNS: hostname to IP address
Communication
Messages can have many characteristics:
Length, priority, streams
Communication medium properties affect
communication performance
bandwidth, latency, multi-cast capability,
message prioritization
Consistency
Since we assume network links can fail at any
time, replication is required to maintain
consistency for longer computations
Replication of data
Replication of computation
Costs associated with consistency:
Reduction in the amount of effective
resources
Managing extended failures
Load Sharing
Local vs. non-local
e.g., communication failure less likely in local
clusters of processors
Process migration can be expensive
What about a system that knows the load of each
machine, then assigns computation?
Doesn't scale well
Issues - Turning Completeness, Propagation
Delay
7
Server Registration
Use Discovery or Directory Service
Each server registers a service and a version
Service - typically implemented as an integer;
a set of well-known services exist
Version - a number used to select which
server to use
Who decides which server to return to the client?
Key issue: Load Balancing
10
Marshalling
Assume heterogeneous computing environment
Need to have a consistent set of data types
What about pointers?
Client/Server operate in separate contexts
What about exceptions?
Exceptions can result from errors at the client
site or network problems
11
12