Files
rikako-note/mysql/mysql集群/CAP Theorem in DBMS.md
2025-10-21 16:28:55 +08:00

35 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- [CAP Theorem in DBMS](#cap-theorem-in-dbms)
- [What is the CAP Theorem](#what-is-the-cap-theorem)
- [Consistency](#consistency)
- [Availability](#availability)
- [Partition Tolerance](#partition-tolerance)
# CAP Theorem in DBMS
在网络共享数据系统设计中固有的权衡令构建一个可靠且高效的系统十分困难。CAP理论是理解分布式系统中这些权衡的核心基础。CAP理论强调了系统设计者在处理distributed data replication时的局限性。CAP理论指出在分布式系统中只能同时满足`一致性、可用性、分区容错`这三个特性中的两种。
> CAP理论中对分布式系统提出了如下三个特性
> - consistency(一致性)
> - availability可用性
> - partition tolerance分区容错
由于该底层限制,开发者必须根据其应用的需要谨慎的平衡这些属性。设计者必须决定优先考虑哪些特性,从而获取最佳的性能和系统可靠性。
## What is the CAP Theorem
CAP理论是分布式系统的基础概念其指出分布式系统中所有的三个特性无法被同时满足。
### Consistency
`Consistency`代表network中所有的节点都包含相同的replicated data拷贝而这些数据对不同事务可见。其保证分布式居群中所有节点返回相同、最新的数据。其代表所有client对数据的视角都相同。存在许多不同类型的一致性模型而CAP中的一致性代指的是顺序一致性是一种非常强的一致性形式。
`ACID``CAP`中都包含一致性,但是这两种一致性所有不同:
-`ACID`中,其代表事务不能破坏数据库的完整性约束
-`CAP`中,其代表分布式系统中相同数据项在不同副本中的一致性
### Availability
Availability代表每个对数据项的read/write request要么能被成功处理要么能收到一个操作无法被完成的响应。每个non-failing节点都会为所有读写请求在合理的时间范围内生成响应。
### Partition Tolerance
partition tolerance代表在连接节点的网络发生错误、造成两个或多个分区时系统仍然能够继续进行操作。通常在出现network partition时每个partition中的节点只能彼此互相沟通跨分区的节点通信被阻断。
这意味着即使发生network partition系统仍然能持续运行并保证其一致性。network partition是不可避免地在网络分区恢复正常后拥有partition tolerance的分布式系统能够优雅的从分区状态中恢复。