学习 Apache Cassandra(一):初识 Cassandra

简介

Apache Cassandra 是一个开源、分布式去中心化弹性扩展高可用错误容忍可调一致性、面向行的数据库,分布式设计基于亚马逊 Dynamo,数据模型基于谷歌 Bigtable,最初由 Facebook 创建

数据一致性

根据 CAP 定理(Consistency、Availability、Partition Tolerance),对于一个分布式系统,一致性、可用性和分区容错性,只能满足其中二项

cap throrem

Cassandra 一致性在上图中,在 AP 区间,Cassandra 保证最终一致性

Cassandra 可调一致性允许在一致性与性能之间做平衡,需要更强的一致性将导致性能将下降,需要更高的性能则不得不牺牲一致性

写一致性级别

ANY 确保值被写入到至少一个副本节点

ONE,TWO,THREE 确保值被写入到至少一个、两个、三个节点的 commit log 和 memtable

LOCAL_ONE 类似于 ONE,只是相应的节点在本地数据中心

QUORUM 确保写到至少 (副本数 / 2) + 1 个副本

LOCAL_QUORUM 类似于 QUORUM,只是相应的节点在本地数据中心

EACH_QUORUM 类似于 QUORUM,只是相应的节点在各个数据中心

ALL 确保值被写入所有副本节点(强一致性)