首页 > 代码库 > 一致性模型(consistency model)

一致性模型(consistency model)

比如下面的例子:

  • 一行X值在节点M和节点N上有副本
  • 客户端A在节点M上写入行X的值
  • 一段时间后,客户端B在节点N上读取行X的值

 一致性模型所要做的就是决定客户端B能否看到客户端A写的值。一致性模型分为一下几种模型:

  •   随意一致性(causal consistency)
  • delta一致性(delta consistency)
  • entry一致性(entry consistency)
  • 最终一致性(eventual consistency)
  • 创建一致性(fork consistency)
  • 原子一致性(atomic consistency)
  • 松散一致性(release consistency)
  • 顺序一致性(sequential consistency)
  • 弱一致性(weak consistency)
  • 强一致性(strong consistency)
  • casual+一致性(casual+ consistency)

 下面是几种比较常用的一致性模型:

1、最终一致性(eventual consistency)

  最终一致性模型是用于分布式系统中,用来实现高可用行,确保在如果一个更新操作发生,那么最终一定可以读取到这次的更新操作的发生。最终一致性在分布式领域广泛使用,采用多个副本形式。如果一个系统实现了最终一致性,那么这个系统可以称之为收敛的,或者叫做实现了副本收敛。相比于传统的ACID(Atomicity,Consistency,Isolation,Durability),最终一致性提供的是BASE(Basic Availablilty,Soft state,Eventual Consistency)服务。最终一致性有个重大缺点:在系统达到副本收敛之前,系统有可能返回任何值

      最终一致性冲突解决方法:

      为了实现副本收敛的特性,系统必须协调多个不同版本之间的数据。系统实现最终一致性要求的过程叫做anti-entropy,在不同服务器之间交换数据。冲突解决方式一般是最后一个writer进行协调或者用户执行协调处理系统。

  参考资料:

   维基百科:eventual consistency。http://en.wikipedia.org/wiki/Eventual_consistency

 2、

     

 

一致性模型(consistency model)