1 minute read

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…)