数据一致性通常指关联数据之间的逻辑关系是否正确和完整。而数据存储的一致性模型则可以认为是存储系统和数据使用者之间的一种约定。如果使用者遵循这种约定,则可以得到系统所承诺的访问结果。
常用的一致性模型有:
a、严格一致性(linearizability, strict/atomic Consistency):读出的数据始终为最近写入的数据。这种一致性只有全局时钟存在时才有可能,在分布式网络环境不可能实现。
b、顺序一致性(sequential consistency):所有使用者以同样的顺序看到对同一数据的操作,但是该顺序不一定是实时的。
c、因果一致性(causal consistency):只有存在因果关系的写操作才要求所有使用者以相同的次序看到,对于无因果关系的写入则并行进行,无次序保证。因果一致性可以看做对顺序一致性性能的一种优化,但在实现时必须建立与维护因果依赖图,是相当困难的。
d、管道一致性(PRAM/FIFO consistency):在因果一致性模型上的进一步弱化,要求由某一个使用者完成的写操作可以被其他所有的使用者按照顺序的感知到,而从不同使用者中来的写操作则无需保证顺序,就像一个一个的管道一样。 相对来说比较容易实现。
e、弱一致性(weak consistency):只要求对共享数据结构的访问保证顺序一致性。对于同步变量的操作具有顺序一致性,是全局可见的,且只有当没有写操作等待处理时才可进行,以保证对于临界区域的访问顺序进行。在同步时点,所有使用者可以看到相同的数据。
f、 释放一致性(release consistency):弱一致性无法区分使用者是要进入临界区还是要出临界区, 释放一致性使用两个不同的操作语句进行了区分。需要写入时使用者acquire该对象,写完后release,acquire-release之间形成了一个临界区,提供 释放一致性也就意味着当release操作发生后,所有使用者应该可以看到该操作。
g、最终一致性(eventual consistency):当没有新更新的情况下,更新最终会通过网络传播到所有副本点,所有副本点最终会一致,也就是说使用者在最终某个时间点前的中间过程中无法保证看到的是新写入的数据。可以采用最终一致性模型有一个关键要求:读出陈旧数据是可以接受的。
h、delta consistency:系统会在delta时间内达到一致。这段时间内会存在一个不一致的窗口,该窗口可能是因为log shipping的过程导致。
最终一致性的几种具体实现:
1、读不旧于写一致性(Read-your-writes consistency):使用者读到的数据,总是不旧于自身上一个写入的数据。
2、会话一致性(Session consistency):比读不旧于写一致性更弱化。使用者在一个会话中才保证读写一致性,启动新会话后则无需保证。
3、单读一致性(Monotonic read consistency):读到的数据总是不旧于上一次读到的数据。
4、单写一致性(Monotonic write consistency):写入的数据完成后才能开始下一次的写入。
5、写不旧于读一致性(Writes-follow-reads consistency):写入的副本不旧于上一次读到的数据,即不会写入更旧的数据。
Werner Vogels认为:在很多互联网应用中,单读一致性+读不旧于写一致性可以提供足够的一致性了。
Werner Vogels基于NWR模型来分析一致性,该模型决定了亚马逊云计算技术架构的方向。
N-副本个数,W-每次同步写入的副本个数,R-每次读出副本个数。认为只要W+R>N,就可以达到很强一致性。例如同步方式N=2,W=2,R=1,则始终是一致的;而如果是异步方式,则每次同步写入的W只有1,就不能保证一致性。如果W<N,则需要采取lazy的方式后续将更新同步给其他N-W个副本。
要保证强一致性,那么如果每次不能写够W份时,此次写操作必须失败,系统变得不可用。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wdwbw/archive/2009/05/13/4179639.aspx
分享到:
相关推荐
5. **批量操作**:可以一次性处理多个帖子的转帖,适合需要转移大量内容的情况。 压缩包内的文件“论坛转帖工具.htm”很可能是工具的主界面文件,用户双击后会在浏览器中打开,展示工具的界面和操作指南。HTML文件...
转帖过程中,工具通常会自动保留原帖的格式和内容完整性,包括文字、图片、链接等元素,确保转帖后的帖子与原文一致。 一键8经验签到是另一项便利的功能。在百度贴吧,签到可以获得经验值,用于提升用户等级,增加...
UBB论坛转帖圣手.exeUBB论坛转帖圣手.exe
3. 数据分析:通过批量发布和转帖,可以进行用户行为分析,了解哪种类型的内容更受论坛用户欢迎。 综上所述,“Discuz! X2转帖工具、采集工具”是提升Discuz! X2论坛运营效率的有效辅助手段,但使用时需谨慎,确保...
本篇文章将详细探讨“编辑人员转帖去水印工具”,并介绍如何使用名为Teorex Inpaint的1.0.0.2版本的软件来实现这一目标。 首先,我们要理解什么是水印。水印通常是指在图像或视频中添加的半透明标记,它可以是文字...
$PBExportComments$用数据窗口做跑马灯 release 7; datawindow(units=1 timer_interval=10 color=15780518 processing=0 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 24 print....
标题和描述中的“世界编程大赛第一名写的程序”这一知识点,实际上指向了计算机科学与编程竞赛领域的一个重要概念:即在高水平的编程比赛中,优胜者所编写的代码往往蕴含着高级算法、数据结构以及编程技巧。...
2008高教社杯全国大学生数学建模竞赛B题讨论专贴-高等教育学费价格市场模型分析.pdf 2008年高教社杯数学建模比赛B题讨论转帖: 本帖规则: 1:我们论坛会适当公布一些步骤,公式等 2:可以在本帖提问,...
6. **数据绑定**: Flex 支持数据绑定,可以将界面元素的值直接与后台数据模型关联,当数据变化时,界面会自动更新,反之亦然,减少了繁琐的事件监听和更新逻辑。 7. **Flex 和 BlazeDS**: BlazeDS是Adobe提供的一个...
- 保持布局一致性,使整体风格统一。 - 合理利用空白区域,避免页面拥挤。 - 字体大小、颜色等应统一规划,增强视觉效果。 #### 九、利益相关者考虑(Stakeholders) - **定义**:考虑到所有利益相关者的关切。...
"转帖工具插件 for PHPwind 7.5 正式版" 是专门为 PHPwind 7.5 版本设计的一个功能插件,旨在提供便捷的帖子转移功能,帮助管理员或者用户将内容从一个地方轻松移动到另一个地方,而无需直接编辑论坛的原始文件。...
"copyto.php" 是后端处理脚本,它接收来自前端的请求,处理数据,例如验证用户权限、格式化内容、记录转帖行为等。 安装过程简单明了,主要分为三个步骤: 1. 将 "copyto.js" 和 "copyto.php" 文件上传到帝国CMS的...
- **编码兼容性**:由于同时支持GBK和UTF-8两种编码,需确保插件与数据库编码一致,否则可能导致乱码问题。 - **权限设置**:确保`copyto.js`和`copyto.php`具有执行和读取权限,否则可能导致插件无法正常工作。 - *...
Oracle分析函数是数据库查询中的一个强大工具,它们在处理...通过熟练掌握Oracle分析函数和PL/SQL,数据库管理员和开发人员能够更高效地管理和操作数据库,实现更复杂的数据分析任务,同时提高应用程序的性能和灵活性。
测试环境包括硬件环境和软件环境,硬件环境包括服务器、存储设备、网络设备等,软件环境包括操作系统、数据库管理系统、应用服务器等。 在测试环境中,自动负载测试是一个基本的策略,通过在一台或几台PC机上模拟成...
1.修改自Convert X转帖工具 2.新增批量替换关键词(原来是单个词语替换,可以利用这个功能删除一些网站的防转帖代码) 3.批量随机新增文字(新增内容可自定义,从而实现伪原创) 4.cookie记录替换和新增关键词(避免每次...
服务器返回数据后,使用jQuery处理这些数据,更新城市选择器的选项。 以下是实现这一功能的基本步骤: 1. **HTML结构**:创建两个`<select>`元素,分别用于省份和城市,并为省份选择器添加一个`change`事件监听器...
HTML2UBBMaxcj 是一款专为Softii论坛设计的转帖工具,它主要用于将HTML格式的帖子内容转换成UBB代码,以便在论坛中更好地显示和分享。UBB(Universal BBCode)是一种轻量级的标记语言,常用于网络论坛,与HTML类似,...
转帖图片提取工具可以对论坛图片附件信息进行清除,只保留图片代码,操作很简单,推荐有需要转帖图片工具的朋友下载 转帖图片提取工具使用方法: 将IP138上处理过的东西复制到上方的编辑框内,点击只要图片,下面...
自己做的用matlab仿真的转差频率控制的电机的调速系统,仿真结果很好,自己调了好久跳出来的,转帖出来大家分享