分布式系统基本概念
异常类型
1 服务器down机(随时发生、内存数据丢失(因此需要考虑数据持久化)、down机重启之后要恢复内存信息)
2 网络异常(消息丢失、消息乱序(UDP)或者网络包数据错误、区域内可通信区域间不可通信)
3 磁盘故障(磁盘损坏(备份)、磁盘数据错误(校验和解决))
超时?不能简单的当做失败(分布式存储的3态成功、失败、超时)
一致性
副本是分布式存储系统容错技术的唯一手段
保证副本之间的一致性是整个分布式系统的理论核心
两个角度理解:
1 用户角度:
(1)强一致性:A写完,A、B、C后续都读到最新
(2)弱一致性:不能保证
(3)最终一致性:弱一致性的特例。A写入,保证后续如果没有写操作更新同样的值,A、B、C的读取“最终”都会是新值。
最终一致性:
(1)因果一致性:A通知B已经更新了一个数据项,B后续访问返回更新后的值。一次写入 将保证取代前一次写入。
(2)读写一致性:A写了新值,A的后续操作都会读取新值。(但是B、C不一定)(因果的特例)
(3)会话一致性:会话期间一致性。现有会话和原有会话之间一致性不保证。
(4)单调读一致性:A读取了某个值,后续操作不会读到更早的值。
(5)单调写一致性:多个副本的写操作的顺序与A的写顺序一样。
2 存储系统:
副本一致性:多个副本是否一致。(不一致的时间窗口)
更新顺序一致性:副本之间是否按照相同的顺序执行更新操作。
衡量指标
(1)性能:吞吐能力(QPS TPS)、响应延迟、两个要权衡不能同时满足
(2)可用性:面对异常的时候提供正常服务的能力。
(3)一致性: