ACID->CAP->BASE。
ACID主要应用于保证在对数据库进行分布式请求下,数据的ACID特性。
CAP:在进行分布式应用设计时,经常需要考虑CAP特性,consistent、Available、partition tolerance,理论已经证明同时保证这三个特性的强的特性是不可能的,因为为分布式应用,所以应用在不同的进程或者子网络中,partition tolerance是必须要考虑的,在设计分布式系统时,经常考虑在一致性和可用性之间做平衡。
可用性:主要考虑在一定时间内返回给客户端结果。主要考虑时间实时性和结果的可用性
一致性:
主要有5个方面的考虑: 1 , 读写一致性 。 2 , session一致性。 3 , 因果一致性。 4 , 单调写一致性。 5 , 单调读一致性。
BASE理论:
Ebay提出的BASE理论,basically available (牺牲时间响应,从0.5秒到1秒的延迟或者功能上的损失,完整页面的显示到部分页面的显示)->最终一致性。
一致性协议:2PC到3PC。
2PC : prepare(提交事务)->commit(执行事务)。
paxos算法详解:
Paxos主要通过分布式应用进程proroser选举提案,accepter批准提案,当一个提案被批准之后,分布式应用进程应该learn到这个提案的最新消息,通过不同的方式通信learner提案数据的变化。