文章目录


ACID和CAP理论

ACID

**atomicity(原子性):**所有的事务要么都成功要么都失败,

**consistency(一致性):**执行事务的前后,数据库的状态保持一致

isolation(隔离性):一个事务的执行不能被其他事务干扰
**durability(持久性)*可以理解为事务执行完后,该事务对数据库的更改便持久到了数据库中,这个更改是永久的

CAP

**一致性(Consistency) *不同机器访问一致,即所有节点在同一时间具有相同的数据
**可用性(Availability) *客户端总是可以读写,即保证每个请求不
管成功或者失败都有响应
分隔容忍(Partition tolerance): 分到多个机器形成多个分区,即使网络故障依然可以工作,即系统中任意信息的丢失或失败不会影响
系统的继续运作

我们都知道在关系型数据库中是需要满足ACID特性的,而在NoSQL中是是不能同时满足CAP三个理论的,但不是说,CAP理论是不对的哈。

下面先来看可用性(A)和一致性的冲突:

P:分布式系统都分布在各个子网络,每一个网络叫做一个区,所以每一个分区都是分隔的。一般来说,分区容错是不能容忍的。

但是,需要满足分区容忍的话,就需要花费一定的时间进行数据的复制,在数据复制时,需要保证数据的一致性的话,就不能对外提供访问请求,需要等数据复制完时,才能进行访问,这样就违背了可用性(A)。下面我们来看一个例子:

client向G1发起一个写请求,将其改为v1,这时client读取G1获得到v1,满足可用性。但是当用户访问G2时返回的是v0的话,这样就不满足一致性了。

当G2需要将数据更新为v1时,这个时候,要是想要保证数据的一致性,必须在G1在写操作时,锁定G2的读操作和写操作,当两者的数据同步后,才能重新开放读写。这样就和可用性冲突了

所以说,在非关系型数据库中,CAP理论是不能同时被满足的。

写。这样就和可用性冲突了

所以说,在非关系型数据库中,CAP理论是不能同时被满足的。

ACID和CAP特性的更多相关文章

  1. 事务,acid,cap,paxos随笔

    事务ACID四个特性: A:原子性(Atomicity)C:一致性(Consistency)I:隔离性(Isolation)D:持久性(Durability) 原子性:语句要么全执行,要么全不执行,是 ...

  2. 分布式理论系列(一)从 ACID 到 CAP 到 BASE

    分布式理论系列(一)从 ACID 到 CAP 到 BASE 一.ACID 1.1 事务的四个特征: (1) Atomic(原子性) 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程 ...

  3. 从ACID到CAP及BASE

    从ACID到CAP及BASE ACID 说到事务,肯定想到事务的ACID特性,即原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durabilit ...

  4. ACID和CAP的比较

    https://www.jdon.com/artichect/acid-cap.html 1 简介 事务机制ACID和CAP理论是数据管理和分布式系统中两个重要的概念,很不巧,这两个概念中都有相同的& ...

  5. 分布式系列文章——从ACID到CAP/BASE

    事务 事务的定义: 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元(Unit),狭义上的事务特指数据库事务. 事务的作用: 当多个应用程序并发访问 ...

  6. 【数据库】事务,ACID,CAP和一致性

    什么是事务 事务是指由一系列数据库操作组成的一个完整的逻辑过程,这个过程中的所有操作要么都成功,要么都不成功.比如:常见的例子就是银行转账的例子,一次转账操作会包含多个数据库操作,而这些数据库操作需要 ...

  7. 分布式理论——从ACID到CAP再到BASE

    在传统的数据中,有ACID四大原则,在分布式中也有对应的CAP理论和BASE理论,这些都是分布式理论的基础. 更多内容参考:大数据学习之路 ACID ACID分别是Atomicity 原子性.Cons ...

  8. 分布式系列文章 —— 从 ACID 到 CAP / BASE

    转自:https://mp.weixin.qq.com/s?amp;mid=2652037708&__biz=MzI0NDI0MTgyOA%3D%3D&idx=1&chksm= ...

  9. 数据库ACID和CAP理论

    1.ACID是RDBMS的理论基石:      A原子(Atomiclty )事务原子性:      C一致(Consistency)插入一张表数据,会 影响其它(索引/其它表)等一致.      I ...

  10. ACID和CAP, BASE

      ACID:关系型数据库中事务的4个属性:   Atomicity,原子性,整个事务的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间的某个环节.事务在执行过程中出错,会回滚到事务开始前的状 ...

随机推荐

  1. django生命周期流程以及无有名分组和反向解析 JsonResponse和form表单上传

    django的请求生命周期流程图 要求每个人必须会画,帮助你梳理django的大致流程 路由层 1. 路由匹配:urls.py 这个文件是django框架的总路由文件,意味着还有分路由文件,每个应用都 ...

  2. PHP接受json数据

    PHP接受json数据 获取请求的参数 $input = file_get_contents("php://input"); $input = json_decode($input ...

  3. 9.Java的LinkedList/Deque相关方法

    Java的LinkedList/Deque中add/offer/push,remove/pop/poll的区别 它们来自不同的接口 add/remove源自集合,所以添加到队尾,从队头删除: offe ...

  4. typescript开发vue项目二次封装的axios用return Promise.reject(error) 返回异常,提示[Vue warn]: Error in v-on handler (Promise/async)

    二次封装axios时刻意服务端模拟了延迟返回数据的场景,用return Promise.reject(error) 返回异常,报如下错误, [Vue warn]: Error in v-on hand ...

  5. .net 学习必须学的书籍,新手必备,老手升级必须品!!!

    最近看到一篇文章 是关于学习.net的数据 给大家看看. <<第一篇:>> 人身为一个典型的技术宅,平时看了一些技术书籍.算不上是"博览群书",但也涉猎不少 ...

  6. 学习记录--C++作业3

    1.类是一个模板吗? 是:类模板是一个抽象的类,代表类的一般特性,可以用类模板来创建类,所有的类都有共有的特性. 4.函数模板的实例化是什么? 模板函数,即函数 3.关于cin和cout说法正确的: ...

  7. 如何建设私有云原生 Serverless 平台

    随着云计算的普及,越来越多的企业开始将业务应用迁移到云上.然而,如何构建一套完整的云原生 Serverless 平台,依然是一个需要考虑的问题. Serverless的发展趋势 云计算行业从 IaaS ...

  8. 【CS231n assignment 2022】Assignment2 - Part 1,全连接网络的初始化以及正反向传播

    文章目录 前言 FullyConnectedNets 网络初始化 代码注意事项 1. W 的尺寸怎么知道? 2. np.random.norml() 3. batchnorm loss(self, X ...

  9. Hyper-V由于虚拟机监控程序未运行

    以管理员权限打开命令提示符 输入bcdedit /set hypervisorlaunchtype Auto 重启计算机

  10. Gin实践

    // func New() *Engine // func Default() *Engine engine := New() engine.Use(Logger(), Recovery()) 由源代 ...