分布式系统:ACID与CAP

ACID: 在计算机科学中,ACID是数据库事务的一组特性,旨在保证数据的有效性,即使在出现错误、断电和其他意外情况下也能保持数据的一致性。在数据库的上下文中,满足ACID属性的一系列数据库操作(可以被视为对数据的单一逻辑操作)称为“事务”。例如,从一个银行账户向另一个账户转账,即使涉及多个更改(比如从一个账户借记并向另一个账户贷记),也视为单一事务。

CAP:在理论计算机科学中,CAP定理(也称为Brewer定理,以计算机科学家Eric Brewer命名)规定任何分布式数据存储只能提供三个特性中的两个(一致性、可用性、分区容错性)。

概要

•ACID处理个体节点的数据一致性 = 事务级别•CAP处理整个集群的数据一致性 = 节点级别

ACID:

原子性(Atomicity):

原子事务是一系列数据库操作的不可分割和不可约简,要么全部发生,要么全部不发生。

一个原子事务的例子是从账户A向账户B进行货币转账。它包括两个操作:从账户A取款和存入到账户B。通过在原子事务中执行这些操作,确保数据库保持在一致的状态,即如果这两个操作中的任何一个失败,资金既不会丢失也不会被创建。

一致性(Consistency):

所有已应用的数据更改为所有数据库连接提供一致的数据视图。也就是说,在成功写入、更新或删除记录之后,任何读取请求都会立即接收到记录的最新值。

一致性(或正确性)指的是任何给定的数据库事务必须仅按照允许的方式更改受影响的数据。写入数据库的任何数据必须符合所有定义的规则,包括约束、级联、触发器以及所有这些规则的组合。

隔离性(Isolation):

隔离性确定事务完整性对其他用户和系统的可见性。隔离性通常在数据库级别定义,是一个属性,定义了一个操作的更改在何时或如何成为对其他操作可见。

较低的隔离级别增加了许多用户同时访问相同数据的能力,但增加了用户可能遇到的并发效果(如脏读取或丢失更新)的数量。相反,较高的隔离级别减少了用户可能遇到的并发效果,但需要更多的系统资源,并增加了一个事务将阻塞另一个事务的机会。

二阶段锁定是数据库管理系统中最常见的事务并发控制方法,用于提供正确性的序列化和可恢复性。为了访问数据库对象,事务首先需要为该对象获取锁定。根据访问操作类型(例如读取或写入对象)和锁类型,如果另一个事务持有该对象的锁定,则获取锁定可能会被阻塞和延迟。

持久性(Durability):

持久性是ACID属性,保证已提交的事务将永久保存。例如,如果航班预订报告表示已成功预订座位,则即使系统崩溃,座位也将保留预订状态。

持久性可以通过将事务的日志记录刷新到非易失性存储中来实现,然后在确认提交之前。

在分布式事务中,所有参与的服务器必须在确认提交之前进行协调。这通常通过二阶段提交协议来完成。

许多数据库管理系统通过将事务写入事务日志来实现持久性,可以重新处理事务日志以在任何后续故障之前重新创建系统状态。只有在事务记录输入日志后,事务被视为已提交。

9452eb9dac10f204e4c6877d718256aa.jpeg
0*z5L-KJZpq5FAvqh9.jpeg

CAP

一致性(Consistency)(所有节点通过最终一致性拥有相同的数据):一致性意味着在一个节点上的更新/更改立即传播到其他节点。•可用性(Availability):每个请求都会收到(非错误的)响应,但不能保证它包含最新的写入。例如,我们需要跟踪和报告国家的公民数量,如果在计算中丢失了最新数据,不会对最终结果造成重大错误。我们可以使用支持可用性的数据存储。另一方面,当我们需要跟踪业务交易时,我们需要选择支持一致性的数据存储。•分区容错性(Partition Tolerance):即使发生节点之间的任意消息丢失(或延迟),系统仍然可以继续运行。

当发生网络分区故障时,必须决定采取以下其中一种操作:

•取消操作,从而降低可用性但确保一致性•继续操作,从而提供可用性但可能导致不一致性。

234546b76201d05d52750a1e24d51942.png

CAP定理的维恩图

因此,如果存在网络分区,则必须在一致性和可用性之间选择。

4e0e96b26a7c49386a3a5d408fccda54.png
0*PyiMBeDQi3RZpeLR.png

作为CAP权衡

CAP定理基于三个权衡,其中之一是“原子一致性”(缩写为“一致性”),“讨论原子一致性与讨论ACID数据库有些不同,因为数据库一致性是指事务,而原子一致性仅指单个请求/响应操作序列的属性”。

5f8327654986246596c23974f42546c4.png

注意:尽管一些人偏向一致性,而其他人偏向可用性,但其他NoSQL数据存储(如Cassandra和DynamoDB)可以同时提供两者。

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

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

相关文章

Vue实战技巧:从零开始封装全局防抖和节流函数

前言 你是否曾经遇到过用户频繁点击按钮或滚动页面导致反应迟钝的问题?这是因为事件被连续触发,导致性能下降。在本文中,我将为大家介绍 vue 中的防抖和节流策略,并展示如何封装全局的防抖节流函数,以避免频繁触发事件…

Tensorflow2-初识

TensorFlow2是一个深度学习框架,可以理解为一个工具,有谷歌的全力支持,具有易用、灵活、可扩展、性能优越、良好的社区资源等优点。 1、环境的搭建 1.1 Anaconda3的安装 https://www.anaconda.com/ Python全家桶,包括Python环境和…

Scratch 之 大地图引擎怎么做?

引子 简单的介绍一下,一些游戏引擎是有一个隐形小地图存在的,这个隐形小地图通常用来侦测碰碰撞和移动。那么,一个大地图引擎的背景肯定是很大的(一般来说大小都超过200),如果我们要做出一个枪战作品,那就迟早会发现一…

Layui实现OA会议系统之会议管理模块总合

目录 一、项目背景 二、项目概述 1. 概述 2. 环境搭建 3. 工具类引用 4. 功能设计 4.1 会议发布 4.2 我的会议 4.3 会议审批 4.4 会议通知 4.5 待开会议 4.6 历史会议 4.7 所有会议 5. 性能优点 5.1 兼容性好 5.2 可维护性和可扩展性 5.3 轻量灵活 5.4 模块化设计…

图 ML 中的去噪扩散生成模型

Denoising Diffusion Generative Models in Graph ML | by Michael Galkin | Towards Data Science (medium.com) 一、说明 AI DDPM 代表【"Adaptive Importance Density Power Mixture Model" 】即“自适应重要性密度幂混合模型”,是一种用于密度估计的机…

8.物联网操作系统之事件标志组

。事件标志组定义 FreeRTOS事件标志组介绍 FreeRTOS事件标志组工作原理 一。事件标志组定义 信号量信号量只能实现任务与单个事件或任务间的同步。但是某些任务可能会需要与多个事件或任务进行同步,此时就可以使用事件标志组来解决。事件标志组能够实现某个任务与…

LeetCode--HOT100题(23)

目录 题目描述:206. 反转链表(简单)题目接口解题思路代码 PS: 题目描述:206. 反转链表(简单) 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 LeetCode做题链接&…

Python头歌合集(题集附解)

目录 一、Python初识-基本语法 第1关:Hello Python! 第2关:我想看世界 第3关:学好Python 第4关:根据圆的半径计算周长和面积 第5关:货币转换 二、turtle简单绘图 第1关:英寸与厘米转换 第2关&#xff1…

服务器的shell脚本

shell脚本语句可以执行linux的操作语句。 linux相当于网页,shell相当于java。可以解释编写执行逻辑。 shell的开头以:#!bin/sh 定义解析方式,不同的linuxe内核解释方式不同。大多数内核支持sh(bash)方式。 执行sh文件可…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前数据吞吐量(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来获取相机当前数据吞吐量(C#) Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在BGAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过BGAPI SDK获取…

落地数字化管理,提升企业市场竞争力

数字化企业管理方案是一种利用数字技术和信息系统来提升企业管理效率和运营效果的策略。 潜在的数字化企业管理方案 1、企业资源规划(ERP)系统:建立一个集成的ERP系统来统一管理企业的各项业务流程,包括采购、销售、库存管理、财…

计算机网络(6) --- https协议

计算机网络(5) --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm1001.2014.3001.5501 目录 1.HTTPS的出现 1.HTTPS协议介绍 2.补充概念 1.加密 1.解释 2.原因 3.加密方式 对称加…

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解)

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解) 📌提要✍✍类注释✍✍方法注释 📌提要 在开发过程中,最常用的注释有两种:类注释和方法注释,分别是为类和方法添加作者、日期、版本号、描述等…

GNSS基本原理

大家都知道,GNSS卫星之所以能够对地球上的终端(例如手机、汽车、轮船、飞机等)进行定位,依靠的是三维坐标系。 找至少4颗卫星,分别计算各个卫星与终端之间的距离△L(这个距离也被称为“伪距”)&…

电脑免费修改IP地址详解

在如今高度网络化的时代,因为或这或那的原因,产生了修改电脑IP地址的需求。了解如何修改电脑的IP地址可以帮助我们实现目的。本文将为大家详细讲解电脑修改IP地址的步骤和操作技巧,希望能帮助大家轻松掌握。 IP地址(Internet Prot…

谈谈网络安全

目录 1.概念 2.发展现状 3.主要问题 1.概念 网络安全是指保护计算机网络和其中的数据免受未经授权访问、损坏、窃取或破坏的过程和技术。网络安全涉及预防和检测潜在的威胁和漏洞,并采取措施保护网络的机密性、完整性和可用性。 网络安全的概念包括以下几个方面&am…

Spring Boot集成Mybatis-Plus

Spring Boot集成Mybatis-Plus 1. pom.xml导包 <!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql驱动--><dependency><groupId>mysql<…

DSV-080-2NCP-N-MM两位两通常闭先导式电磁阀

该插装阀具有正向关断作用&#xff0c;设计用于负荷保持状态。 动作状况 断电时&#xff0c;DSV -080-2NCP-*-M*为止回阀&#xff0c;允许介质从1到2&#xff0c;同时阻止介质从2到1。 通电时&#xff0c;提升阀提升&#xff0c;打开从 2到1的通通道。 手动关闭选择:按下按…

轻量化YOLOv5改进 | 结合repghost结构冲参数化网络,实现轻量化和加速推理,

RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization 论文总结本文改进repghost 核心代码测试参数量和计算量🔥🔥🔥 “引入RepGhostNet以加速CNN网络推理” “网络宽度的自定义调整:无缝嵌入YOLOv5” “通过结构重参数化优化网络性能” “实现高效和…

基于CentOS 7构建LVS-DR集群

DIPVIPRIPClient192.169.41.139 LVS 192.168.41.134192.169.41.10RS1192.168.41.135RS2192.168.41.138 要求&#xff1a; node4为客户端&#xff0c;node2为LVS&#xff0c;node3和node4为RS。 1.配置DNS解析&#xff08;我这里使用本地解析&#xff09; 192.168.41.134 www.y…