一、基本原则
1、CAP原则, ap、cp或ac没有cap。
2、acid原则:原子性、一致性、事务独立、持久性。数据库使用该原则。
3、base原则:基本可用(大多数时间可用,偶尔不可用)、软状态(数据状态不要求任意时刻都完全保持同步)、最终一致性(给定时间窗口内一致性) nosql遵循该原则。
三者关系:
1)、一致性:ACID中的c是指操作一致性;cap中的c是指数据的强一致性(多副本对外表现类似于单副本),是acid的c的子集。
2)、网路分区(网络出现故障):acid的事务独立(I)只能在某个分区去执行,事务的序列化要求通信,出现网络分区时,只能在单个分区执行。
3)、出现网路分区时,多个分区都各自进行acid中的数据持久化(D)。网路分区解决后,需要对各自的持久化进行一致性检测。
4)、当CAP中P出现时,每个分区都尽可能执行acid,对网络分区问题解决后数据的一致性恢复是有很大帮助。
4、幂等性:
一元运算 f(f(x)) =f(x) 的运算称为满足幂等性。
二元运算f(x,x)=f(x) ,如 max(x,x)=x,布尔运算中的与操作。1 and 1 =1;
分布式系统中反复执行同一操作与只正确执行一次操作效果相同。
二 、一致性模型分类
强一致性、弱一致性、最终一致性、因果一致性、“读你缩写”一致性、会话一致性、单调读一致性和单调写一致性。
强一致性:连接到数据库的所有进程,看到的某数据都是一致的。非强一致性都是弱一致性。
最终一致性:数据更新后,无法保证其他操作能立即看到新数值,需要一个时间片段。
因果一致性:基于进程间A通知B的数据x 更新到v2一致性。Nofity(A,B,x,v2)
读你缩写一致性:进程A 把数据x更新为v2后,立即给自己发出了一条通知。Nofity(A,A,x,v2),因果一致性特例。
网友评论