数据库理论
关系型数据库理论ACID
ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为了保证事务(Transaction)是正确可靠的。所以必须具备的四个特征:
- 原子性(Atomicity,或称为不可分割性)
- 一致性(Consistency)
- 隔离性(Isolation,又称独立性)
- 持久性(Durability)
分布式系统两个理论之一: CAP
- 一个分布式系统不可能同时满足
- 一致性(C:Consistency)
- 可用性(A:Availabitity)
- 分区容错性 (P:Partitiontolerance)
- 对于一个分布式系统来说,分区容错性是基本需求,否则不能称之为分布式系统。因此架构师需要在C和A中间寻求平衡。
分布式系统两个理论之一:BASE
- BASE 由来:
eBay机构是Dan Pritchett源于对大规模分布式系统的实践总结,在ACM上发表文章提出BASE理论,BASE理论是对CAP理论的眼神,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。
- BASE 理论:
- 基本可用(Basically Available):指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
- 软状态(Soft State):指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少有三个副本。允许不同节点间副本同步的延时就是软状态的体现。mysql replication的一部复制也是一种体现
- 最终一致性(Eventual Consistency):指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。
ACID是传统数据库常用的设计理念,最求强一致模型。BASE支持的是大型分布式系统,提出通过牺牲强一致性获得高可用性。