跳轉到

Distributed Systems

Key Characteristics of Distributed Systems

Scalability

  • Ability of a system to grow and manage increased traffic
  • Increased volume of data or requests

Reliability

  • Probability a system will fail during a period of time

Availability

  • Amount of time a system is operational during a period of time
  • High availability indicates a system designed for durability, redundancy, and automatic failover such that the applications supported by the system can operate continuously and without downtime for a long period of time

Manageability

  • Speed and difficulty involved with maintaining system
  • How hard to track bugs
  • Want to abstract away from infrastructure so product engineers don't have to worry about it

CAP Theorem

img

We can only build a system that has any two of these three properties.

To be consistent, all nodes should see the same set of updates in the same order.

But if the network suffers a partition, updates in one partition might not make it to the other partitions before a client reads from the out-of-date partition after having read from the up-to-date one.

The only thing that can be done to cope with this possibility is to stop serving requests from the out-of-date partition, but then the service is no longer 100% available.

Reference