CAP的C,说的只是副本一致性吗?也包括事务一致性吧?

假设没有 raft,没有多副本,也是可以讨论CAP的吧?(副本主要还是保证高可用,region(或分片)才是分布式数据库的核心原理) 所以CAP的C应该主要还是ACID的C,包括副本一致性吧?也就是数据一致性,而不仅仅是副本一致性。

CAP理论中的C代表一致性,是分布式系统设计时需要重点考虑的一个方面

看视频上说 是指 副本一致性,对此有点疑问

我理解,cap 论文上 C 指分布式系统中各节点一致的状态,挪到数据库上,解释为数据一致性应该没问题。但它出发点不是为了解释事务中 C。当然我理解事务中的 C 其实指的也是某种一致性状态,所以实际讲的时候才会掺杂一起讲

个人理解CAP是对数据库集群整体来说的,和事务一致性是一回事,副本一致性指的是TiDB集群的数据存储层多副本之间的一致性。

Consistency: A read is guaranteed to return the most recent write for a given client.
Availability: A non-failing node will return a reasonable response within a reasonable amount of time (no error or timeout).
Partition Tolerance:The system will continue to function when network partitions occur.
参考网站:CAP Theorem: Revisited

看看楼上的解释,觉得讲得比较到位。

感觉不是acid的c,这是分布式的一个概念,指的所有节点的一致性,然后tidb做到了多副本的一致性
acid指的是事务的一致性

ACID 是数据库管理系统(DBMS)中事务处理的一种设计原则。一致性(Consistency):一致性要求事务必须使数据库从一个一致性状态变换到另一个一致性状态。一致性状态是指数据库中所有数据都符合所有的完整性约束条件。换句话说,事务的执行结果必须是正确的,满足所有的预期。

CAP 的一致性C是所有的数据节点完全一样,tidb放弃了CAP里面的A,C是用多数成功就算成功来实现的,一旦满足不了多数成功,那数据库就放弃可用性,停止服务了

一致性应该是分布式数据库的核心,感觉CAP的C不全是ACID的C,也不只是副本一致性,就是指数据一致性了,它的实现基础就副本一致性和事务一致性

[quote=“yg_1988, post:5, topic:1031903”]
是的,因为不是分布式也有ACID的,所以CAP的C就不完全是ACID的C了。 AP就是非分布式的。但完全解释成副本一致性也说不通

这个还是ACID的C,没有疑问的

“tidb放弃了CAP里面的A”, 是这样的吗? 那公司名称还是 PingCAP ,感觉不合理啊

CAP只能满足其中两个 ,如果有并发的事务和交易,那就只能放弃A

:sleepy::sleepy::sleepy:

CPA理论里面的C很好理解,就是在同一个时间,分布式数据库所有节点select数据,返回是一样的。
如果出现故障,比如断网了,数据无法同步,那么C和A只能实现一个,要么为了保证每个节点返回数据都一样,就停止服务,等网通了数据一致了再提供服务,要么就是无所谓不一致,各个节点返回不同结果,等网通了再同步到一致。

最好理解的是mysql的主从,你把注库从库看作一个分布式数据库

主从还属于副本吧,不能说是分布式,分片跟接近

CAP理论中的CAP分别指的是一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。

一致性应该是核心

主从是分布式一种形式