通讯异常sql
- 单机内存延时在纳秒级(10ns)
- 正常一次网络通讯延时在(0.1ms--1ms)
- 相差100倍
网络分区数据库
- 因为网络发生异常,致使分布式系统中部分网络延时加大,最终致使仅仅有部分系节点能使用,叫作网络分区
三态网络
- 三种状态,每次请求存在三种状态:成功、失败、超时
- 超时的缘由:
- 可能根本没发送到接收方
- 接收方返回的结果没发回发送方
节点故障并发
ACID事务的隔离性、一致性、原子性、持久性分布式
- 原子性
- 一致性
- 隔离性
- 标准sql 定义了4个隔离级别
- 未受权读
- 一个事务还没完成,另外一个事务能够读取其正在操做的数据
- 受权读
- 可重复读取
- 读取值都和事务开始时刻一致,可能致使幻读
- 幻读:不一样时刻,同一事务执行结果不一样
- 串行化
- 最严格的事务隔离级别
- 全部事务都串行执行,不能并发执行

- 事务隔离级别越高,完整性一致性越强,同时对并发性能影响越大
- 对于绝大多数应用程序,设置为受权读取
持久性性能
分布式事务blog
- 也称嵌套型事务
- 实现严格的事务,就要牺牲分布式系统可用性
- 可用性与一致性的妥协
CAP理论进程
- 分布式系统不能同时知足C(consitency)一致性、A(availablity)可用性、P(partition tolerance)分区容错性
- 最多只能同时知足俩
- 一致性
- 数据在多个副本之间是否保持一致
- 一个节点上数据更新后,在其余节点上能读到更新后的数据,称为一致
- 可用性
- 用户的操做须要在“有限的时间内” “返回结果”(两者缺一 都不叫可用)
- 分区容错性
- 分布式系统遇到任何网络分区故障的时候,仍然能提供一致性和可用性的服务


- 分区容错性每每是分布式系统的一个基本要求,所以,大多数分布式系统都是在一致性和可用性之间作平衡
BASE 理论事务
- BA(基本可用)、S(软状态)、E(最终一致性)
- BASE 是对CAP 理论可用性、一致性权衡的结果,是大型互联网系统分布式实践的总结
- 基本可用
- 是指系统遇到不可预知故障时,容许损失部分可用性(好比双十一,部分次要功能下线)
- 好比时间上损失(搜索结果不是0.5秒返回结果,1--2秒返回)
- 好比双十一部分消费者被引导到降级页面
- 软状态
- 容许出现中间状态,容许在不一样节点之间复制数据延时
- 最终一致性
- 五大类变种:
- 因果一致性
- A更新数据后通知B,B操做要基于A更新后的值
- 不相关的 C操做无限制
- 读本身所写
- 会话一致性
- 单调读一致性
- 一个进程从系统中读取数据项某个值,该进程不能读到比这个值更旧的值
- 单调写一致性
- 能够将上述5项中,部分项结合起来构建最终一致性的分布式系统