什么是分布式数据库中的CAP理论(容易误解)?------内附CAP原则下的常用数据库

MySQL_16_分布式系统的CAP原则 文章目录一、CAP原则引入二、为什么三个原则不能同时满足2.1 Partition tolerance2.2 Consistency2.3 Availability2.4 Consistency 和 Availability 的矛盾三、满足两种特性的三种情况3.1 CA without P,就不再是分布式数据库了3.2 CP without A,典型的分布式数据库3.3 AP wihtout C... 阅读详情

       网上有很多关于CAP理论的介绍, 感觉很多文章没有说清楚, 本想写一篇文章来介绍一下, 但我发现wiki上的介绍更好, 所以直接引用过来(红色的中文是我的注解):

 

In theoretical computer science, the CAP theorem, also named Brewer's theorem after computer scientist Eric Brewer, states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees:[1][2][3]  (不能三者都满足)

 

ConsistencyAvailabilityPartition tolerance
Every read receives the most recent write or an error (读取到最新数据)Every request receives a (non-error) response – without guarantee that it contains the most recent write(可以收到响应)The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes(分布式)

 

In other words, the CAP theorem states that in the presence of a network partition(确保P), one has to choose between consistency and availability(权衡C和A). Note that consistency as defined in the CAP theorem is quite different from the consistency guaranteed in ACID database transactions.

 

 

Explanation[edit]

No distributed system is safe from network failures, thus network partitioning generally has to be tolerated(既然是分布式,那就要选择P). In the presence of a partition, one is then left with two options: consistency or availability. When choosing consistency over availability, the system will return an error or a time-out if particular information cannot be guaranteed to be up to date due to network partitioning(由于是分布式,且要求数是最新的,那么必然会存在不可用的时候). When choosing availability over consistency, the system will always process the query and try to return the most recent available version of the information, even if it cannot guarantee it is up to date due to network partitioning(由于是分布式,且要可用,那就没法保证数据是最新的).

 

In the absence of network failure – that is, when the distributed system is running normally – both availability and consistency can be satisfied.(这句话很关键,CAP可以同时满足,但前提条件是没有网络故障)

 

CAP is frequently misunderstood as if one has to choose to abandon one of the three guarantees at all times. In fact, the choice is really between consistency and availability only when a network partition or failure happens; at all other times, no trade-off has to be made.[4][5](这句话也很关键, 进一步指出CAP在网络良好的情况下,是可以同时满足的。但在实际中,会有网络出现故障的时候, 此时,CAP才无法同时满足)

 

Database systems designed with traditional ACID guarantees in mind such as RDBMS choose consistency over availability, whereas systems designed around the BASE philosophy, common in the NoSQL movement for example, choose availability over consistency.[6](不同数据库有不同的选择哲学)

 

The PACELC theorem builds on CAP by stating that even in the absence of partitioning, another trade-off between latency and consistency occurs.

 

History[edit]

According to University of California, Berkeley computer scientist Eric Brewer, the theorem first appeared in autumn 1998.[6] It was published as the CAP principle in 1999[7] and presented as a conjecture by Brewer at the 2000 Symposium on Principles of Distributed Computing (PODC).[8] In 2002, Seth Gilbert and Nancy Lynch of MIT published a formal proof of Brewer's conjecture, rendering it a theorem.[1](先提出,后证明)

In 2012, Brewer clarified some of his positions, including why the often-used "two out of three" concept can be misleading or misapplied, and the different definition of consistency used in CAP relative to the one used in ACID.[6](别误解)

A similar theorem stating the trade-off between consistency and availability in distributed systems was published by Birman and Friedman in 1996.[9] The result of Birman and Friedman restricted this lower bound to non-commuting operations.

 

 

      最后,我们来看看CAP原则下的常见数据库:

 

分布式数据库CAP理论 分布式数据库CAP 理论 阅读详情

相关推荐

数据库分类与数据库基本原则(ACID、CAP、BASE)

分布式系统中ACID和CAP有什么区别 - 知乎 (zhihu.com) 关系型数据库遵循ACID规则 && NoSQL 数据库BASE CAP - 玲汐 - 博客园 (cnblogs.com) 分布式系统设计时,遵循CAP原则_alpha_2017的博客-CSDN博客 1、数据库数据库规则 1.1 数据库 1)关系型数据库SQL: ​ 传统的SQL数据库的事务通常都是支持ACID的强事务机制 关系型数据库- 高度组织化结构化数据 - 结构化查询语言(SQL) (SQL) -.

weixin_46307478的博客 2508

CAP理论

1. 概念 CAP理论,指的是在一个分布式系统不可能同时很好的满足Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区错性),最多只能同时较好的满足两个。 因此CAP原理将NoSQL数据库分成了满足CA元组、满足CP原则和满足AP原则三大类: CA without P 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。 传统关系型数据库 CP without A 满足一致性、分区错性的系统,通常性能不是很高。 大多数网

XiaoCai 372

MATLAB闪退别慌!5分钟搞定Windows系统预设文件修复(详细截图)

本文针对MATLAB在Windows系统下频繁闪退的问题,提供了快速有效的解决方案。核心在于修复或重置损坏的MATLAB预设文件,通过图文并茂的五步法,指导用户定位AppData目录、重命名预设文件夹,从而让MATLAB自动生成全新配置以解决闪退。文章还涵盖了问题诊断、设置备份及进阶排查方法,帮助用户彻底根除启动故障。

weixin_29234423的博客 871

CAP 理论

概述 CAP即: Consistency(一致性) Availability(可用性) Partition tolerance(分区忍性) 一致性 对于客户端的每次读操作,要么读到的是最新的数据,要么读取失败。换句话说,一致性是站在分布式系统的角度,对访问本系统的客户端的一种承诺:要么我给您返回一个错误,要么我给你返回绝对一致的最新数据,不难看出,其强调的是数据正确。 可用性 任何客户端的请求都能得到响应数据,不会出现响应错误。换句话说,可用性是站在分布式系统的角度,对访问本系统的客户的另一种承诺:我一

qq_39552758的博客 420

NOSQL期末复习

第一章 初识NoSQL 一、填空题 1.大数据时代对数据存储的挑战包括高并发读写需求、高效率存储和访问需求、高扩展性。 2.NoSQL是Not Only SQL的缩写,它的含义为“不仅仅是SQL”。 3.NoSQL是一种非关系型、分布式、不遵循ACID、不提供SQL功能的数据库。 4.NoSQL理论的基础是由CAP原则、BASE理论以及最终一致性奠定的。 5.NoSQL数据库主要有四大类型,键值对存储数据库、文档存储数据库、列式存储数据库及图形存储数据库。 二、判断题 1.NoSQL是非关系型数据库

广阔天地 1万+

数据库CAP理论:一致性、可用性以及分区忍性

CAP理论由3个部分组成(也是名字的由来):>一致性,全部读操作收到最新的写入或一个错误(error)。>可用性,全部读都包含数据,但可能不是最新的。>分区忍性,即使网络失败(也就是失联的分区、慢网络连接,或节点间不可用的网络连接),系统也继续运转。在正常的系统运转中,你的数据存储提供全部三项职能。但是CAP理论坚持认为:当分布式数据库经历网络失败时,你能提供要么一致性,要么可用性。这是一个权衡。其它的全部时间里,三项是全部可以提供的。但是万一网络失败,则必须做出一个取舍

mojinchuan的专栏 1692

分布式数据库理论知识之CAP理论、ACID原则及分布式事务一致性算法

一阶段提交不需要“协调者”角色,各结点之间不存在协调操作,因此其事务执行时间比两阶段提交要短,但是提交的“危险期”是每一个事务的实际提交时间,相比于两阶段提交,一阶段提交出现在“不一致”的概率就变大了。一旦协调者出现问题,那么整个二阶段提交流程将无法运转,更为严重的是,如果协调者是在阶段二中出现问题的话,那么其他参与者将会一直处于锁定事务资源的状态中,而无法继续完成事务操作。当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者将通知所有的参与者取消事务。

数据源的港湾 2286

cap理论 mysql_分布式系统理论(一):CAP定理

什么是CAP定理CAP定理指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区错性),三者不可兼得。在分布式系统中,分区错性是必须需要实现的。所以只能在一致性和可用性之间进行权衡(AP或者CP)单机RDBMS是CA系统单机的Oracle或MySQL之类的传统RDBMS数据库没有分区错,是CA系统,可以...

weixin_30405507的博客 618

分布式之CAP原则详解

一、概述 CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。 一致性(C):在分布式系统中的所有数据备份,...

lixinkuan的博客 10万+

了解分布式数据库系统中的CAP定理

分布式数据库系统的设计和实现中,CAP定理是一个至关重要的概念。CAP定理,全称为一致性(Consistency)、可用性(Availability)和分区忍性(Partition tolerance)定理,由加州大学伯克利分校的Eric Brewer教授在2000年提出。CAP定理指出,一个分布式数据库系统最多只能同时满足这三个特性中的两个。理解CAP定理对于构建高性能、高可用的分布式系统至关重要。

huaqianzkh的专栏 1311

CAP原理和BASE理论

某米的抢购手机场景,可能前几秒你浏览商品的时候页面提示是有库存的,当你选择完商品准备下单的。弱状态也称为软状态,和硬状态相对,是指允许系统中的数据存在中间状态,并认为该中间状态的存在。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强。生故障的前提下,数据达到一致状态的时间延迟,取决于网络延迟,系统负载和数据复制方案设计等因。以上就是最终一致性的五类常见的变种,在时间系统实践中,可以将其中的若干个变种互相结合起来,而在异步方式中,备库的更新往往存在延时,这取决。

2301_78064339的博客 824

数据库系列四」分布式数据库CAP理论与最终一致性

传统关系型数据库中事务有四个重要的特性,简称ACID,即 原子性: 事务是一个不可分割的工作单位,事务中的操作要么都成功,如果有一个执行失败,所有的SQL将都被撤销,恢复到事务开始的状态 一致性: 事务前后数据的完整性必须保持一致。 例如转账前AB两账户金额之和是2000元,事务结束后,金额之和仍然是2000元 隔离性:当多个用户并发的访问数据库时,数据库为每一个用户开启的事务之间是隔离的,一个事务不能被其他事务的操作所干扰 持久性: 持久性是指一个事务一旦被提交,它对数据库中数据的改变就是...

qq_35789269的博客 720

CAP原则

CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区错性),最多只能同时三个特性中的两个,三者不可兼得。 一、CAP的定义 Consistency (一致性): “all nodes see the same data at the same time”,即更新操作成功并返回...

江城宴的博客 9388

mysql cp cap_深入理解CAP理论和适用场景

概述在分布式系统中,围绕着CAP理论,主要关注点就是复制,一致性,错性。复制为了保证系统的高可用和高可靠性,通过 复制 的方式,让数据在系统中存储多个副本。以服务实例多副本为例,当一个服务发生异常时,客户端就直接调用其他正常的副本。如下: 服务A有两个副本,分别为副本1和副本2。当客户端调用服务A时,如果服务A发生异常无法调用,此时,客户端调用副本1或者副本2,这样就保证了系统的高可用。可以就这...

weixin_35336727的博客 911

【分布式】1、CAP 理论 | 一致性、可用性、分区忍性

分布式 CAP 理论 | 一致性、可用性、分区忍性

呆呆的猫的博客 3657

分布式数据库CAP原理

分布式数据库CAP原理CAP简介CAP理论CAP总结 CAP简介 传统的关系型数据库事务具备ACID: (1)A :原子性 (2)C :一致性 (3)I :独立性 (4)D :持久性 分布式数据库CAP: (1)C(Consistency):强一致性 “all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新

DJL新时代农民工DJL 2515

Java多线程编程实例

1. CAP 的由来 要理解 CAP,首先我们要清楚,为何会有人提出 CAP?他提出 CAP 是为了解决什么问题? 时间回到 1985 年,彼时,后来证明了 CAP 理论的 Lynch 教授此时给当时的 IT 界来了一记惊雷: 她通过不可辩驳的证明告诉业界的工程师们,如果在一个不稳定(消息要么乱序要么丢了)的网络环境里(分布式异步模型),想始终保持数据一致是不可能的。 这是个什么概念呢?就是她打破了那些既想提供超高质量服务,又想提供超高性能服务的技术人员的幻想。 这本质是在告诉大家,在分布式系统里,需要妥协

目标检测专栏持续更新中,改进YOLO系列通用,适用v5、v7、v8、所有博客均是团队原创博客,所有文章禁止转载,违者必究。 349

RK3588平台开发系列讲解(以太网篇)MDIO底层驱动

沉淀、分享、成长,让自己和他人都能有所收获!😄。

内核笔记 6853

stm32h743iiTx移植ucosii源代码

stm32h743iiTx移植ucosii源代码

上一篇: 浅谈分布式数据库
下一篇: 搞懂了通货膨胀,通货紧缩的原因,影响和对策
涛歌依旧
涛歌依旧 优质创作者: 后端开发技术领域 优质创作者: 后端开发技术领域 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄14年 28万+粉丝 2592原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值