两大核心技术
分布式储存
分布式处理
数据是什么
数据:一种可以被鉴别的对客观事件进行记录的符号。简单来说就是:对人类的行为及产生的事件的一种记录。
CAP理论
CAP理论指出:一个分布式系统不可能同时满足一致性(Consistency),可用性(Availibility)和分区容忍性(Partition Tolerance)这三个需求,最多只能同时满足其中的两个。
Partition Tolerance和Consistency,那么即使坏了节点,操作必须又一致,要求保正所有节点之间有10%的连通性,难以做到,不满足Availabity。
满足Availability和Consistency,数据必须要有Replica.系统显然无法容忍Partition。
满足Availability和Partition Tolerance, 不同节点中有replica,在产生Partition的时候仍然操作可以完成,不可能。
ACID模型
关系数据库放弃了分区容忍性(Partition Tolerance),具有高一致性(Consistency)和高可靠性(Availabiliy),采用ACID模型解决方案:
Atomicity原子性:一个事务中所有操作都必须全部完成,要么全部不完成。
Consistency一致性:在事务开始或结束时,数据库应该在一致状态。
Isolation隔离层:事务将假定只有它自己在操作数据库,彼此不知晓。
Durability:一旦事务完成,就不能返回。
BASE思想
基于CAP理论逐步演化而来,核心思想是即便不能达到强一致性(Strong consistency),但可以根据应用特点采用适当的方式来达到最终一致性(Eventual consistency)的效果。
Basicaly Available:基本可用;
Soft-state: 软状态/柔性事务,即状态何以有一段时间的不同步;
Eventual consistency:最终一致性;
BASE是反ACID的,它完全不同于ACID模型,牺牲强一致性,获得基本可用性和柔性可靠性并要求达到最终一致性。
分布式NoSQL基于该理论基础。