Terrastore和CAP定律

Terrastore和CAP定律一文主要从CAP方面谈其分布式数据库Terrastore,我想如果你推出一款新式分布式数据库,从CAP这个角度谈才能够比较让人明白。

Terrastore是基于著名IMDG内存数据网格Terracotta兵马俑的文本存储库。是一个可分区 基于Master主备份拓扑结构的。能够配置成一个集群,一个激活主机,多个从机模式;或多个集群组等。

下面从CAP谈Terrastore:
Terrastore是一个一致性consistent 存储,它是介于关系数据库的ACID和BASE之间。概念见CAP和BASE原理

这一描述非常精确,不像国内某个电子商务网站的分布式数据库那样描述:又有分布式NoSQL数据库特点,又有关系数据库的一致性,非常含糊,似乎在与CAP定理较劲。

Terrastore提供一个单文本一致性,也就是说:在对单个文档的单个更新修改中是ACID的,你肯定能够看到最新的文档内容,但不支持文档之间的事务,或同样文档持续性多个操作。

避免跨操作 cross-operation 和跨文本 cross-document是为了让Terrastore更加比关系数据库可扩展。

Availability (A) 和 Partition Tolerance (P)需要在一起谈,因为Terrastore的可用性是取决于它的分区方式:集群 主机或多服务器方式。

在多个集群组方式中,如果其中一个集群组不能访问,其中的所有数据就不能被访问,而其他集群组相关数据则可访问。Terrastore是可以在集群之间容忍分区的。

在单个集群方式,Terrastore是完全可用的,只要其中任何一个主机或服务器能访问即可。Terrastore是不能在单个集群中容忍服务器之间的分区(banq注:换句话说:单个集群的分布能力不强)

那么Terrastore是超级解决方案,类似国内电子商务那个开源分布式数据库,既有关系数据库好处,又有普通NoSQL好处?

答案是不是,因为没有超级解决方案。真相是没有银弹,没有通用的解决方案。如果你需要一个超快的访问数据,那么选择一个非分布式非关系的解决方案;如果有大量数据分布在多个数据中心,那么使用BASE方案,需要在分区容错和数据完整可用性之间取得平衡。
或者如果你需要一个分布式存储又要求高一致性:Terrastore。