一致性模型(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、强一致性模型(strong consistency)
强一致性模型是用于并发编程模型中的一致性模型,一般用于分布式共享内存(distributed shared memory)、分布式事务(distributed transaction)。一个协议满足强一致性模型,如果满足下面的条件:
所有并行的进程(节点,处理器等)看到的是一样的存取顺序
也就是只有一种状态被所有的并行进程观察到,对比与弱一致性(weak consitency),并行进程可能看到不同的状态。
参考资料:
维基百科:strong consistency。http://en.wikipedia.org/wiki/Strong_consistency
相对应与解决强一致性问题需求的方法:paxos算法
关于paxos算法的基本知识:
维基百科:paxos。http://en.wikipedia.org/wiki/Paxos_(computer_science)
国内介绍paxos算法比较全的网址:http://blog.csdn.net/chen77716/article/details/6166675
paxos算法作者的原著paper:http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf
paxos算法实现软件zookeeper:http://zookeeper.apache.org
paxos算法google实现chubby的经典论文:http://research.google.com/archive/chubby-osdi06.pdf
一致性模型(consistency model)的更多相关文章
- [翻译]内存一致性模型 --- memory consistency model
I will just give the analogy with which I understand memory consistency models (or memory models, fo ...
- CAP原理、一致性模型、BASE理论和ACID特性
CAP原理 在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Con ...
- thinkphp模型层Model、Logic、Service讲解
thinkphp模型层Model.Logic.Service讲解 时间:2014-08-24 15:54:56 编辑:一切随缘 文章来源:php教程网 已阅读:771 次 js特效 ...
- Scikit-learn:模型评估Model evaluation
http://blog.csdn.net/pipisorry/article/details/52250760 模型评估Model evaluation: quantifying the qualit ...
- 盒子模型(Box Model)
盒子模型(Box Model) ■ 盒子模型——概念 在网页设计中常用的属性名:内容(content),填充(padding),边框(border),边界(margin),CSS 盒子模式都具备这些属 ...
- 使用 Jackson 树模型(tree model) API 处理 JSON
http://blog.csdn.net/gao1440156051/article/details/54091702 http://blog.csdn.net/u010003835/article/ ...
- css盒模型(Box Model)
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和 ...
- HTML和CSS的盒子模型(Box model)
本文作为属性篇的最后一篇文章, 将讲述HTML和CSS的关键—盒子模型(Box model). 理解Box model的关键便是margin和padding属性, 而正确理解这两个属性也是学习用css ...
- 事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability.。
事务的四大属性ACID即事务的原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability.. 原子性(Atomicity) 原子性是指事 ...
随机推荐
- ajax接收flask传递的json数据
from flask import Flask, request import json app = Flask(__name__) @app.route('/') def func(): res = ...
- 微信小程序,动态改变样式
小程序目前没有修改样式api,但是可以利用数据绑定实现动态改变样式,可以用view标签模拟page然后改变view标签的样式,以下案例演示了如果改变page背景颜色: <view class=& ...
- UEditor 百度富文本编辑器 .Net实例
转自 http://download.csdn.net/download/hdsslxl/6740605 1.UEditor 百度富文本编辑器完整版 .Net实例 已解决上传图片问题. 2.内附完整d ...
- OpenfileDialog选择照片的简单应用
OpenFileDialog openFileDlg = new OpenFileDialog(); openFileDlg.Title = "选择文件"; openFileDlg ...
- java反射机制的简单介绍
参考博客: https://blog.csdn.net/mlc1218559742/article/details/52754310 先给出反射机制中常用的几个方法: Class.forName (& ...
- 3.用less浏览文件内容
less 命令是一个用来浏览文本文件的程序.纵观 Linux 系统,有许多人类可读的文本文件.less 程序为我们检查文本文件 提供了方便. 什么是“文本” 在计算机中,有许多方法可以表达信息.所有的 ...
- (转)从Python的0.1输出0.1000000000000001说浮点数的二进制
原文地址:http://blog.csdn.net/u012843100/article/details/60885763 今天在学习Python核心编程的时候,十进制浮点数那段看到一个有趣的事情. ...
- php简单的数组递归
参照 http://www.oschina.net/code/snippet_105637_11401 的例子 $arr = array('aa' => array('bb' => ...
- mysql实现‘主从复制’
mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 首先准备多台服务器,其中一台作为主服务器,从服务器数量自定. 1.主从服务器分别作以下操作: 主服务器 ...
- windows server 2003安装Oracle webtier 32位因环境变量原因报错
在服务中启动Oracle processer manager时报错:错误1053:服务没有及时响应启动或控制请求 原因是本系统还安装过BI和Oracle数据库等产品 解决方法:删除和本次安装无关的环境 ...