【软件开发】系统设计复试此基础

甚么是 CAP不等式以及 PACELC 怎样扩充它?

在互联网通讯中,可能会出现相同类别的机械故障,比如,伺服器可能会崩盘或永久性机械故障,硬盘可能会损毁引致统计数据遗失,或者互联网连接可能会遗失,引致控制系统的一小部分封禁。互联网通讯怎样对另一方面进行可视化以从相同的需用资源中获得最大投资收益?协助互联网通讯在各种分布式系统优点间优先选择平庸均衡的辅导准则是甚么?检查和 Grokking the System Design Interview 以了解重要的互联网通讯基本概念。

CAP 不等式

CAP 不等式指出,互联网通讯不可能与此同时提供以下大部份四个平庸优点:

  • 连续性(C):大部份结点与此同时看到完全相同的统计数据。这意味著使用者能加载或载入控制系统中的任何人结点并转交完全相同的统计数据。它相等于保有两个新一代的统计数据复本。

  • 易用性(A):易用性是指控制系统中阿机械故障结点接到的每一允诺都要产生积极响应。即便出现严重的张鹏翔,每一允诺也要中止。单纯来说,易用性是指即便控制系统中的两个或数个结点出现机械故障,控制系统仍维持可出访性的能力。

  • 南区容差(P):南区是控制系统中任一三个结点间的通讯受阻(或张鹏翔),即三个结点都已开启但难以互相通讯。即便控制系统南区,南区纠错控制系统也会继续运转。这样的控制系统能忍受任何人不会引致整个张鹏翔的张鹏翔。统计数据在结点和互联网的女团间得到充份拷贝,以使控制系统在短暂性受阻时维持恒定运转。

根据 CAP 不等式,任何人互联网通讯都需要从四个优点中优先选择三个。四个快捷键是 CA、CP 和 AP。但是,CA 并不是两个真正的相联快捷键,因为在互联网南区的情况下,非难南区的控制系统将不得不舍弃连续性或易用性。因此,该不等式实际上能表述为:在存在互联网南区的情况下,互联网通讯要优先选择连续性或易用性。

CAP 不等式的证明

我们难以构建两个持续需用、顺序一致且能容忍任何人南区机械故障的通用统计数据存储。我们只能构建具有这四个优点中的任一三个的控制系统。因为,为了维持一致,大部份结点都应该以完全相同的顺序看到完全相同的更新集。但是,如果互联网遗失了两个南区,则两个南区中的更新可能难以在客户端加载新一代南区后从过期南区加载之前到达其他南区。应对这种可能性的唯一方法是停止为来自过期南区的允诺提供服务,但随后该服务不再 100% 需用。

CAP 不等式缺少甚么?

我们难以避免互联网通讯中的南区;因此,如上所述,根据 CAP 不等式,互联网通讯应该在连续性或易用性间进行优先选择。 ACID(原子性、连续性、隔离性、持久性)统计数据库,比如 MySQL、Oracle 和 Microsoft SQL Server 等 RDBMS,优先选择连续性(如果难以与对等方检查和,则拒绝积极响应)。相比之下,BASE(基本需用、软状态、最终一致)统计数据库,比如 MongoDB、Cassandra 和 Redis 等 NoSQL 统计数据库,优先选择了易用性(积极响应本地统计数据,但不确保它是新一代的)。CAP 不等式沉默的两个地方是当没有互联网南区时会出现甚么?在没有南区的情况下,互联网通讯有哪些优先选择?

救援 PACELC 不等式

PACELC 不等式指出,在拷贝统计数据的控制系统中:如果存在南区(P),互联网通讯能在易用性和连续性(即A和C)间进行权衡;else(‘E’),当控制系统在没有南区的情况下恒定运转时,控制系统能在延迟(‘L’)和连续性(‘C’)间进行权衡。

不等式的第一小部分(PAC)与CAP不等式完全相同,ELC是扩充。整篇论文假设我们通过拷贝来维持高易用性。因此,当出现机械故障时,CAP 不等式占上风。但如果不是,我们仍然需要考虑拷贝控制系统的连续性和延迟间的权衡。

例子

  • Dynamo 和 Cassandra 是 PA/EL 控制系统:它们在出现南区时优先选择易用性而不是连续性;否则,他们会优先选择较低的延迟。

  • BigTable 和 HBase 是 PC/EC 控制系统:它们总是会优先选择连续性,舍弃易用性和更低的延迟。

  • MongoDB 能被认为是 PA/EC(默认配置):MongoDB 在主要/次要配置中工作。在默认配置中,大部份载入和加载都在主结点上执行。由于大部份拷贝都是异步完成的(从主结点到辅助结点),当存在主结点遗失或在少数结点上被隔离的互联网南区时,可能会遗失未拷贝到辅助结点的统计数据,因此会遗失南区期间的连续性。因此,能得出结论,在互联网南区的情况下,MongoDB 优先选择易用性但其他方面保证连续性。或者,当 MongoDB 配置为在多数复本上载入并从主复本上加载时,它能归类为 PC/EC。

结论

CAP 和 PACELC 不等式协助互联网通讯在各种分布式系统优点(如连续性、易用性、南区容限和延迟)间优先选择平庸的均衡。请查看 Grokking the System Design Interview 和 Grokking the Advanced System Design Interview 以获得一些控制系统设计基础知识的好例子。

本文 https://jiagoushi.pro/system-design-interview-basics-cap-vs-pacelc 讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】 公众号

【jiagoushipro】【超级架构师】精彩图文详解架构方法论,架构实践,技术原理,技术趋势。我们在等你,赶快扫描关注吧。

【cea_csa_cto】50000人社区,讨论:企业架构,云计算,大统计数据,统计数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

QQ群

【792862318】深度交流企业架构,业务架构,应用架构,统计数据架构,技术架构,集成架构,安全架构。以及大统计数据,云计算,物联网,人工智能等各种新兴技术。加QQ群,有珍贵的报告和干货资料分享。

视频号 【超级架构师】1分钟快速了解架构相关的基本基本概念,模型,方法,经验。每天1分钟,架构心中熟。

知识星球 向大咖提问,近距离接触,或者获得私密资料分享。

喜马拉雅 路上或者车上了解新一代黑科技资讯,架构心得。 知识星球 认识更多朋友,职场和技术闲聊。 微博 【智能时刻】 哔哩哔哩 【超级架构师】

抖音 【cea_cio】超级架构师

快手 【cea_cio_cto】超级架构师

小红书 【cea_csa_cto】超级架构师

谢谢大家关注,转发,点赞和点在看。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台网易号使用者上传并发布,本平台仅提供信息存储服务。