Introduction to COMP0133
UCL Course COMP0133: Distributed Systems and Security LEC-00
Distributed Systems
Disadvantages of Centralized System
-
Single point of failure
-
Finite resource \( \implies \) Overload
One Reason for Distributed System: Avaliability
Method: Replicate data on several servers
Aims:
-
Reachability: increasing possibility to access one usable server
independent probabilities of a single failure
Problems:
-
Consistency? - What if servers have different data, client should choose which one to trust?
-
Latency? - What if replicas are made far apart? (long round trip time \( \implies \) poor user experience)
-
Partition Resilience? - What if one seat remain on plane is bought twice due to partition?
Trade-off between Availability and Consistency
Another reason for Distributed System: Scalable Capacity
Method: Spread users across several servers
Aims:
- Linear Scaling: \( U \) users per box \( \implies \) \( N \) boxes support \( NU \) users
Problems:
-
Bottlenecks? What if all users’ inbox are set on one server?
-
Scaling? How to close to linear?
-
Load Balance? What if some users get more emails than others?
Hard to Design Distributed Systems
-
Failure: Hosts, Network … (which one fails?)
-
Heterogeneity 多相性: Different data representations (Big Endian or Little Endian)
-
Need consistency (specific definitions for different applications)
-
Need concurrency for preformance (waiting synchronously \( \implies \) resource idle)
Security
Before Internet
-
Encryption and Authentication using cryptography
-
Communication between parties known each other
Internet Era
-
Potential attackers all over the Internet
-
Parties have no prior relationship
-
Cryptography will not enough to solve all problems (e.g., software vulnerabilities…)