【问题标题】:CAP Theorem - What are the reasons for partitioning in first place?CAP Theorem - 首先进行分区的原因是什么?
【发布时间】:2022-05-19 18:40:21
【问题描述】:
关于 CAP 定理,如 CP 与 AP 等,有很多很好的 stackoverflow 问答。
简而言之,定理指出:
“在存在分区的情况下,您必须牺牲可用性或一致性”
让我们想象一下我们谈论存储,特别是数据库。
什么是技术的首先要分区的原因?
(我将尝试在下面进行一些猜测):
- 操作系统只能处理这么多端口/系统句柄。
- 单“N PB”硬盘不存在,您需要更多,直到您的 SATA/PCI 端口用完。
- 让数据更接近消费者。
- 单个数据库大小限制为大小 X。
【问题讨论】:
标签:
distributed-computing
distributed-system
cap-theorem
【解决方案1】:
请注意,根据 CAP 的“分区”和根据物理数据库设计的“分区”在含义上有所不同。
CAP 中的“分区”是指当分布式系统中的节点变得不可用/无法访问时发生的情况,因此是指“在运行时”发生的现象。
根据物理数据库设计的“分区”是指将表示单个表的行的物理记录分布在各种不同的物理存储中的设计决策,但“不同”甚至可能仍然仅表示“单个存储的各种不同段” .无论如何,它因此指的是在设计时发生的事情。
特别是,这意味着如果按照物理数据库设计进行“分区”,这并不一定会导致 CAP 意义上的“分布式系统”的存在。特别是,当根据物理数据库设计“分区”时,您不一定要创建一个具有各种不同运行时组件“独立”运行的系统:如果您对表进行分区,您通常仍然只有一个正在通信的 DBMS ,因此只有一个唯一的运行时组件。
同样特别是,如果您按照物理数据库设计“分区”,那么得出结论是错误的,即由于 CAP 定理,必然会牺牲一致性。