分布式——ACID原则 CAP理论

分布式计算的原理

分布式计算就是将计算任务分摊到大量的计算节点上,一 起完成海量的计算任务。而分布式计算的原理和并行计算 类似,就是将一个复杂庞大的计算任务适当划分为一个个 小任务,任务并行执行,只不过分布式计算会将这些任务 分配到不同的计算节点上,每个计算节点只需要完成自己 的计算任务即可,可以有效分担海量的计算任务。而每个 计算节点也可以并行处理自身的任务,更加充分利用机器 的CPU资源。最后再将每个节点的计算结果汇总,得到最 后的计算结果。

分布式计算的理论基础

ACID原则

ACID是数据库事务正常执行的四个原则,分别指原子性一致性独立性持久性

A(Atomicity)—— 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失 败,整个事务就失败,需要回滚。 例如银行转账,从A账户转100元至B账户,分为两个步骤:①从A账户取 100元;②存入100元至B账户。 这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失 败,钱会莫名其妙少了100元。

C(Consistency)—— 一致性 一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。 例如现有完整性约束a + b = 10,如果一个事务改变了a,那么必须得改变 b,使得事务结束后依然满足a + b = 10,否则事务失败。

I(Isolation)—— 独立性 所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问 的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问 的数据就不受未提交事务的影响。 例如交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如 果此时B查询自己的账户,是看不到新增加的100元的。

D(Durability)—— 持久性 持久性是指一旦事务提交后,它所做的修改将会永久保存在数据库上, 即使出现宕机也不会丢失。 这些原则解决了数据的一致性、系统的可靠性等关键问题,为关系数据 库技术的成熟以及在不同领域的大规模应用创造了必要的条件。

CAP理论

一个分布式系统最多只 能同时满足一致性(Consistency)、可用 性(Availability)和分区容错性(Partition tolerance)这三项中的两项。
在这里插入图片描述
一致性
指“All nodes see the same data at the same time”,即更新操作成功并返 回客户端完成后,所有节点在同一时间的数据完全一致。对于一致性,可以分 为从客户端和服务端两个不同的视角来看。

  • 从客户端来看,一致性主要指多并发访问时更新过的数据如何获取的问题。
  • 从服务端来看,则是如何将更新复制分布到整个系统,以保证数据的最终一 致性问题。

可用性

  • 指“Reads and writes always succeed”,即服务一直可用,而且是 在正常的响应时间内。对于一个可用性的分布式系统,每一个非故障的节点 必须对每一个请求作出响应。也就是该系统使用的任何算法必须最终终止
  • 当同时要求分区容错性时,这是一个很强的定义:即使是严重的网络错误, 每个请求也必须终止。好的可用性主要是指系统能够很好地为用户服务,不 出现用户操作失败或者访问超时等用户体验不好的情况。通常情况下可用性 和分布式数据冗余、负载均衡等有着很大的关联。
    分区容错性
  • 指“The system continues to operate despite arbitrary message loss or failure of part of the system”,也就是指分布式系统在遇到某节点或网络 分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
  • 分区容错性和扩展性紧密相关。在分布式应用中,可能因为一些分布式的原 因导致系统无法正常运转。好的分区容错性要求应用虽然是一个分布式系统, 但看上去却好像是一个可以运转正常的整体。例如现在的分布式系统中有某 一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求, 或者是机器之间有网络异常,将分布式系统分隔为独立的几个部分,各个部 分还能维持分布式系统的运作,这样就具有好的分区容错性。
CAP权衡

无法同时满足一致性、可用性和分区容错性这三个特性,那应该如何取舍呢?
(1)CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用 性)是可以保证的。但其实分区始终会存在,因此CA的系统更多的是允许分区 后各子系统依然保持CA。
(2)CP without A:如果不要求A(可用),相当于每个请求都需要在Server之 间强一致,而P(分区)会导致同步时间无限延长,如此CP也是可以保证的。很 多传统的数据库分布式事务都属于这种模式。
(3)AP without C:要高可用并允许分区,则需放弃一致性。一旦分区发生, 节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务, 而这样会导致全局数据的不一致性。现在众多的NoSQL都属于此类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab高光谱样本相关性分析

一.高光谱图像数据分析 1.分析光谱波段的相关性 1.1 对于维度为(m,n,b)的高光谱数据,使用reshape函数将其变换为(N,b)维度的,其中N m x n,表示像素数量,b表示波段数。 1.2 分析样本(像素)间波段的相关性,采用函数c…

万众瞩目的特斯拉AI日,会有哪些惊喜?

来源:华尔街见闻作者:方凌8月19日,特斯拉AI日即将举行。马斯克此前曾表示,此次AI日将展示特斯拉在人工智能方面硬件和软件开发的进展,并且招募顶级人才。活动的日子日渐临近,对于特斯拉究竟将在放出什么“大…

第一次会议(2019/02/22)

小组名称及成员介绍 小组名称:Triple兔成员介绍(均为1703班)项目经理:刘晓丽(右上)前端开发:刘晓丽(右上)、王亚群(右下)后端开发:乔疏…

JVM 工作原理和流程

作为一名Java使用者,掌握JVM的体系结构也是必须的。 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Jav…

中国未来技术学院盘点

来源:科学网8月19日,上海交通大学未来技术学院正式揭牌成立。香港首富、宁德时代公司董事长曾毓群担任未来技术学院名誉院长,宁德时代首席制造官和工程制造及研发体系联席总裁倪军出任首任院长。一家市值超万亿的高科技龙头企业掌门人和高管&…

QT高级编程之QT基本概览

QT高级编程 主要从以下几个方面来介绍QT高级编程,并介绍QT相关的概念。 1、 QT部件Widget; 2、 QT信号与槽机制; 3、 对象树关系; 4、 布局管理; 5、标准对话框以及自定义对话框; 6、文件与目录&#xff…

计算机视觉中的自注意力

来源:机器学习研究组订阅自从引入网络以来,深度学习中的注意力机制在机器翻译和 社区中广受欢迎。然而,在计算机视觉中,卷积神经网络 (CNN) 仍然是常态,自注意力才刚刚开始慢慢渗透到研究的主体中,要么补充…

QT信号与槽-启动系统程序以及相关控件介绍

1.1 创建一个继承至QWidget的项目。 1.2 设计界面,分析界面采用的布局方式。 首先,每行控件采用水平布局方式,第三行为了使控件靠右,前面添加一个占位控件。三行采用垂直平局;选中控件,通过右键可以控件的布局方式&a…

科技部向全社会征集颠覆性技术研发方向

来源:人民网据科技部网站消息,为提升我国重大科技创新方向前瞻布局能力,加快推动颠覆性技术创新,科技部办公厅拟面向各有关单位和广大科研人员,开展颠覆性技术研发方向建议征集工作,对于符合条件的建议&…

springboot前后端分离项目MultipartFile获取前端传的file为null问题

【问题描述】 springbootvue 前后端分离项目,在对接上传文件功能时,一直显示文件为空。 【分析】 查找了很多博客,解决方法五花八门,但原因应该还是 springboot自带的org.springframework.web.multipart.MultipartFile和Multi…

计算机网络( 二十二)-数据链路层(补充)

1.链路link:结点------>相邻结点的物理线路。 2.数据链路:物理线路通信协议,通信协议(通信规程)用来控制数据的传输。 3.最常用网络适配器(硬件、软件)来实现协议。适配器包括了数据链路层和物理层两层的功能。 4.数据链路层的协议数据单元PDU------帧…

《科学之路》| 图灵奖得主杨立昆人工智能十问:AI会统治人类吗?

来源:《科学之路》作者:杨立昆封面:Yukai Du即便是最先进的人工智能系统也存在局限性,它们还不如一只猫聪明。人工智能常常被认为是一项将要颠覆世界的技术,从这一概念诞生至今的65年中,无数电影与小说塑造…

计算机网络(二十三)-网络层-概述与数据交换方式

一.网络层的功能 主要任务是把分组从源端传送到目的端,为分组交换网上的不同主机提供通信服务。 网络层传输单位是数据报。功能 路由选择与分组转发,最佳路径。异构网络互联;拥塞控制; 若所有结点都来不及接收分组,网…

数字大脑学术沙龙:“城市大脑与应急管理专题研讨会”成功召开

来源:城市大脑全球标准研究组2021年以来城市大脑的建设与研究获得了长足发展,数百个城市开展了城市大脑的建设与规划,取得了诸多成果。于此同时,伴随着疫情、水灾、交通事故、环境事故的不断出现,城市大脑如何应对应急…

Java 注解:@PostConstruct和@PreConstruct

从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):PostConstruct和PreConstruct。这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明。 使用方式,例如&#xff…

计算机网络(二十四)-路由算法及路由协议

1.1 路由算法 将最优的路径填入路由转发表。 1.2 路由算法分类 静态路由算法(非自适应路由算法):管理员手动配置路由信息。 简便、可靠,在负载稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。 动…

研究速递:老年人的心智能力不一定在衰减,抗干扰的能力会更强

来源: 混沌巡洋舰长期以来,人们一直认为,衰老会导致我们的心智能力大幅下降。现在,乔治城大学医学中心的新研究,反驳这一观点,研究结果发表在2021年8月19日的《自然---- 人类行为》杂志上,由于世…

计算机网络(二十五)-IP数据报格式

1.1 TCP/IP协议栈 1.2 IP数据报格式 IP数据报如果过大,就会对它进行分片,每个分片为一个分组。 版本指的是IPv4或IPv6;首部长度:单位是4B(4字节),最小为5;区分服务:指示期望获得哪种类型的服…

NLP≠NLU,机器学习无法理解人类语言

来源:图灵人工智能 编译:吴彤校对:暮编辑:琰琰长期以来,我们一直在与机器沟通:编写代码--创建程序--执行任务。然而,这些程序并非是用人类“自然语言“编写的,像Java、Python、C和C …

CentOS 7 安装并启动Nginx

一、安装必要的库 1、安装gcc gcc-c yum install -y gcc gcc-c 2、gzip模块需要 zlib 库 cd /usr/local wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./config make && make install3、重写模块需要pcre库 cd /usr/loc…