scalability: 可扩展性,系统能够适应其工作增长的能力,随着其处理的工作增加,性能和可用性并不会降低
performance:性能,通过系统完成的一工作量已经需要的时间或资源衡量,具体要求:
latency:延迟, 事件开始到对外部可见之间的时间间隔。eg, 对数据的修改与实际用户观察到数据的修改
availability:可用性,系统可用时间所占比例
fault tolerence:容错, 当一些节点发生故障时,系统任然可用的能力
分布式系统两个比较重要的属性:
分布式系统模型需要是对下面几个方面的抽象:
接下来分别讨论这三方面
介绍故障模型前先讲一些故障的概念:
fault, error and failure
系统中某一个步骤偏离的正确的执行叫做fault,如果fault不可修复则称为error; 如果一个fault没能在影响整个node状态前被修复则是error;如果一个error没能在扩散到其他节点前修复则是failure。接下来我们所说的故障一般都是指failure.
原文
现实情况下,系统提供的最低保障是节点之间的消息有可能延迟,重复,丢失,乱序
同步模型(synchronous system model): 同步模型是一个理想的模型,基于下面三个假设我们能够决定事务发生的全局顺序,也能够判断一个节点是执行失败了还是执行太慢没有响应。
异步模型 (asynchronous system model):我们实际生活中的是异步模型,异步模型中节点没有同步的全局时钟,网络有可能无线延迟,节点的处理速率不一样
2PC,3PC,paxos, raft