作者:阎斌
地址:http://ultimatearchitecture.net/index.php/2010/06/22/eventually_consistency_base-vs-acid/
学过数据库的人都会知道,ACID是关系型数据库的最基本原则。但是在遵守ACID原则规定的强一致性的同时,会对性能造成很大的影响。
对于大多数的互联网应用来讲,强一致性并不是非常重要的。和一致性比起来,可用性更加重要性一些。最终一致性简单的讲就是在某一个短暂的时间内数据可以不一致,但是在无限长的时间内,所有节点上的replica最终会达到完全一致。
BASE 策略是Eric A. Brewer 在 1988 年提出的。和ACID完全不同,BASE的基本思想就是牺牲强一致性,以便获得可用性或可靠性。BASE的全称是Basically Available、Soft state、和Eventually consistent
和完全可用的区别是:在分布式系统部分损坏的时候,允许部分内容不可用,但是其他部分仍旧可用。因此称这种系统为“基本可用”。比如,一个数据存储系统由五个节点构成。其中一个发生了损坏,这个时候,只有20%的数据不能访问,其他80%数据仍旧可用。那么就可以称这种系统为基本可用的。
关于Soft state的解释有很多,唯一可以肯定的是Soft State和Hard State是相对的两个概念。在Fenng的一篇Blog(BASE — 高可用架构的基石之一)中,作者将Soft State翻译为“无连接的”,有点难以理解。
个人认为,Soft state可以和Hard State和Stateless对比着去理解。Stateless是指无状态。在分布式系统中,如果每一个Server都是无状态的,那么这个系统的可靠性是非常高的。因为即使坏了任何一个server,都不会影响到整体的运行情况。如果一个Server是Hard State的。那么,这个系统保留了所有客户端发过来的状态,系统整体的某些状态会因为某一台保存了状态的服务器挂掉而丢失。系统是非常不可靠的。
在很多资料中都写到,Soft State只会保留客户端的状态一段时间,在这段时间过后,如果客户端没有再次发送刷新状态的请求时,这个状态就会消失。
这个概念最先来自于计算机网络领域。最近被应用于服务器的设计。
- 最终一致性 Eventually consistent
最终一致性相对于其他两个概念而言还是比较好解释的。除了最终一致性,强一致性之外,还有一个弱一致性。简单的说,一致性的不同类型主要是区分在高并发的数据访问操作下,后续操作是否能够获取最新的数据。不同的策略决定了不同的一致性类型。
当一次更新操作之后,后续的读操作如果全部保证是更新后的数据,那么就是强一致性。如果不能保证后续访问读到的都是更新后的,那么就是弱一致性。最终一致性是弱一致性的一种特例。最终一致性规定,后续的访问操作可以暂时不返回更新后的数据,但是经过一段时间之后,必须返回更新后的数据。也就是最终保持一致。
最终一致性还有很多变体,比如Casual Consistency、Session Consistency、Read-your-writes Consistency等。这里不做重点讨论。请自行Google一下。
对CAP和最终一致性有兴趣的读者可以继续阅读:
Werner Vogels的“Eventually Consistent – Revisited”
(http://www.allthingsdistributed.com/2008/12/eventually_consistent.html
)
CAP原理与最终一致性
(http://www.ningoo.net/html/2010/cap_theorem_and_eventually_consistent.html
)
对Soft State有兴趣的可以阅读:
[PAPER]Cluster-Based Scalable Network Services
http://webee.technion.ac.il/labs/comnet/netcourse/CIE/RFC/2205/9.htm
分享到:
相关推荐
所有源码都有经过测试,可以运行,放心下载~
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
Amanda:Amanda机器学习实践.docx
数据集格式:VOC格式+YOLO格式 压缩包内含:3个文件夹,分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计:826 Annotations文件夹中xml文件总计:826 labels文件夹中txt文件总计:826 标签种类数:1 标签名称:["Snake"] 每个标签的框数: Snake 框数 = 1147 总框数:1147 图片清晰度(分辨率:像素):清晰 图片是否增强:否 标签形状:矩形框,用于目标检测识别 重要说明:暂无 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注
RCEP伙伴国技术性贸易壁垒对中国出口贸易的影响研究_刘主光.caj
【光伏功率预测】基于matlab粒子群算法优化高斯过程回归PSO-GPR光伏功率预测(多输入单输出)【Matlab仿真 4373期】
【DELM回归预测】基于matlab蜂虎狩猎算法改进深度学习极限学习机BEH-DELM数据回归预测【Matlab仿真 3847期】
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
内容概要:本文综述了数据挖掘技术的核心概念和技术,详细介绍了多种数据挖掘算法,包括关联规则挖掘算法(如Apriori、FP-tree),分类算法(如决策树的ID3/C4.5、K-NN、贝叶斯分类)和聚类算法(如K-均值、层次聚类和密度聚类)。此外,文档也探讨了KDD(知识发现过程)、聚类与分类的区别以及聚类分析算法的评估指标等关键议题。 使用场景及目标(期末突击):①理解和掌握数据挖掘的基本原理与常用算法;②应用于各种数据分析场景,如客户分群、推荐系统、市场篮子分析等。
页面居中设置的process
【光伏功率预测】基于matlab高斯过程回归GPR光伏功率预测【Matlab仿真 4372期】
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2540/CC2541上运行,如果是其他型号芯片,请自行调整。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):3154 标注数量(json文件个数):3154 标注类别数:7 标注类别名称:["Healthy-mango","Damaged-mango","Anthracnose","Bacterial-Black-spot","Others","Fruitly","Mechanical-damage"] 每个类别标注的框数: Healthy-mango count = 603 Damaged-mango count = 4419 Anthracnose count = 2840 Bacterial-Black-spot count = 831 Others count = 485 Fruitly count = 2469 Mechanical-damage count = 33 使用标注工具:labelme=5.5.0 标注规则:对类别进行画多边形框polygon 重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco
一、主要功能 Ventoy能够支持在同一个U盘上存储多个不同的操作系统镜像,并在启动时提供选择菜单,方便用户选择要启动的操作系统。它无需反复格式化U盘,只需将ISO、WIM、IMG、VHD(x)、EFI等类型的文件拷贝到U盘里面就可以启动了,无需其他操作。同时,Ventoy还支持大部分常见类型的操作系统,如Windows、Linux、Unix、VMware、Xen等。 二、使用优势 便捷性:使用Ventoy制作启动盘非常简单,用户只需将U盘插入电脑,运行Ventoy安装程序,按照提示操作即可完成启动盘的创建。此外,Ventoy支持一次性拷贝多个不同类型的镜像文件,并在启动时显示一个菜单供用户选择,大大提高了使用的便捷性。 多系统支持:Ventoy能够支持几乎所有主流的操作系统,满足用户在操作系统选择和使用上的灵活性需求。 快速启动:Ventoy在启动时能够快速加载操作系统选择菜单,减少了用户的等待时间,提高了工作效率。 更新与维护:Ventoy项目保持活跃的更新,开发者不断修复漏洞、优化性能,并增加对新操作系统和硬件的支持。
管理员模块: 系统管理员管理:管理系统管理员的账户和权限。 药品类别管理:管理药品的分类信息。 药品信息管理:管理药品的详细信息,如名称、规格、价格等。 药品供应商管理:管理药品供应商的信息。 员工信息管理:管理医院员工的资料和信息。 药品出库管理:管理药品出库的流程和记录。 药品销量查询统计:查询和统计药品的销售情况。 员工模块: 员工资料修改:员工可以修改自己的个人信息。 药品销售登记:员工记录药品的销售情况。 出库信息查询:员工查询药品出库的相关信息。 环境说明: 开发语言:Java,jsp JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea 部署容器:tomcat
【ELM回归预测】基于matlab人工兔算法优化极限学习机ARO-ELM数据回归预测【Matlab仿真 3834期】
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2540/CC2541上运行,如果是其他型号芯片,请自行调整。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。
Comsol含色散材料光子晶体能带求解。 包含一维光子晶体和二维光子晶体。 共十余个mph文件,包含多个技巧。
【风电功率预测】基于matlab ARIMA结合支持向量机SVM风电功率预测【Matlab仿真 4571期】
【ESN回归预测】基于matlab粒子群算法优化回声状态网络PSO-ESN数据回归预测【Matlab仿真 4383期】