笔记

分布式系统-简介

http://book.mixu.net/distsys/ebook.html#intro

分布式系统

关于用多台计算机解决原本可以用一台计算机解决的问题的艺术。因为单台计算机的资源(主要指存储能力和计算能力)是有限 的。

分布式系统的目标

Scalability

Size Scalability: 增加节点会让计算速度线性增加;数据量增加时,延迟不增加。

Geographic Scalability:可通过增加数据中心来应对不同地理位置的用户的查询。不同数据中心的延迟可被妥善处理。

Administrative Scalability:增加节点时不增加管理复杂度。

Performance and Latency

包含但不限于

low Latency, short response time

high throughput

low utilization of computer resource

Availability (and fault tolerance)

挑战

分布式系统有2个物理约束:

节点的数量

节点之间的距离

这些约束往往意味着:

1.节点数量增加,系统失败的可能性增加(Availablitiy下降,管理成本增加)

2.节点数增加,节点之间的通讯增加(性能下降)

地理位置的增加,增加了Latency

抽象与模型

用模型来描述分布式系统的关键属性,比如

系统模型(同步/异步)

失败模型(crash-fail,partition,拜占庭Byzantine)

一致性模型(强一致,最终一致)

两板斧:Partition和Replicate

image

image

Partitioning

每个partition只是数据集的子集,提高了Performance和Availability。但如何分区,是跟具体应用很相关的,并没有统一的标准。

Replication

在多台机器上完整复制所有的数据。这是我们应对Latency挑战的主要手段。同时也提高了Performance和Availability。

它也带来了一些问题,主要是consistency的问题。

你可能感兴趣的:(笔记)