Cassandra CAP理论

CAP理论

要理解Cassandra的设计和它所谓的"最终一致性"数据库,首先需要理解CAP理论。一个大规模分布式数据系统中,有三个需求彼此循环依赖:一致性,可用性和分区容错性。

一致性(Consistency)

  1. 对于同样的查询,所有数据库客户端会读取同样的值,即使存在并发更新也要保证这一点。
  2. 一致性级别是客户端每次操作时都必须指定的一个设置,可以通过这个设置来确定集群中有多少个副本完成写操作或者响应读操作时才认为操作成功。

可用性 (Availability)

所有的客户端总是能够读写数据

分区通错性 (Partition tolerance)
  1. 也称分区容忍性,数据库可以分解到多台机器上,即使网络分区通信中断,仍能继续工作

  2. 在任意给定的系统,只能强调这三个特性中的两个。例如,如果期望系统有更好的一致性,就只能有较低的分区容错性,除非你在可用性方面做一些让步。

CA

如果主要支持一致性和可用性,这意味着你很可能为分布式事务使用了两阶段提交。这说明,如果出现网络分区,系统就会阻塞,所以你的系统很可能只限制在一个数据中心集群中,来缓解这个问题。

CP

如果主要支持一致性和分区容错性,你可能会设置数据分片通过改进架构来实现扩展。你的数据将保持一致性,但是如果有节点发生故障,任然存在部分数据不可用的风险。

AP

如果主要支持可用性和分区容错性,你的系统可能会返回不准确的数据但系统总是可用的,即使出现网络分区时也是如此。

你可能感兴趣的:(Cassandra CAP理论)