Distributed Systems: March 5, 2001
Distributed Systems: March 5, 2001
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
6
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