CAP定理、ACID模型、BASE模型

CAP 定理

在理论计算机科学中,CAP 定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency):所有节点在同一时间具有相同的数据
  • 可用性(Availability):保证每个请求不管成功或者失败都有响应
  • 分隔容忍(Partition tolerance):系统中任意信息的丢失或失败不会影响系统的继续运作
    根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项。

ACID 模型:

ACID,是指数据库管理系统(DBMS)在写入/异动资料的过程中,为保证交易(transaction)是正确可靠的,所必须具备的四个特性:

  • 原子性(Atomicity):要么整个事务成功,要么整个不成功
  • 一致性(Consistency):数据库在事务之间处于一个一致的状态中
  • 隔离性(Isolation):又称独立性,在其他事务结束之前,事务看不到被它们更改的数据
  • 持久性(Durability):一旦数据库系统通知用户事务成功,数据就永不丢失

BASE 模型

反 ACID 模型,完全不同 ACID 模型,牺牲高一致性,获得可用性或可靠性:

  • 基本可用(Basically Available):支持分区失败(e.g. sharding 碎片划分数据库)
  • 软状态(Soft state):状态可以有一段时间不同步,异步。
  • 最终一致(Eventually consistent):最终数据是一致的就可以了,而不是时时高一致。

BASE 思想的主要实现有:

  1. 按功能划分数据库
  2. sharding 碎片