教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

BASE理论的三大要素指的是什么?

更新时间:2023年06月30日15时22分 来源:传智教育 浏览次数:

好口碑IT培训

BASE理论是eBay的架构师Dan Pritchett在ACM上发表文章提出的,它是对CAP原则中一致性和可用性权衡的结果,也是对CAP原则的延伸。BASE理论的核心思想是即使无法保证系统的强一致性(strong consistency,即CAP的一致性就是强一致性),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(eventual consistency)。

BASE理论与CAP原则类似,也包含三大要素,即基本可用(Basically Available)、软状态(Soft-State)和最终一致性(Eventually Consistent),具体含义如下:

• 基本可用,是指分布式系统在出现不可预知故障的时候,允许损失部分可用性,保证系统的核心可用即可。需要注意的是,基本可用不等价于系统不可用。

• 软状态,也称为弱状态,和硬状态是相对的,它是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同结点的数据副本之间进行数据同步的过程存在延时。

• 最终一致性,是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

BASE理论与关系数据库中的ACID理论是两种截然相反的理论。下面,我们通过一张表来分析BASE理论和ACID理论的区别,具体如表1所示。

base理论

最终一致性

数据的一致性可以根据强度的不同分为两种,即强一致性和弱一致性。其中,强一致性要求集群中的所有结点的状态实时保持一致;弱一致性不要求系统各结点状态实时保持一致,而最终一致性是弱一致性的一种特殊形式。NoSQL.数据库通常选择放弃强一致性,用最终一致性的思想设计分布式系统,从而使得系统达到高可用性和高扩展性。

最终一致性,指的是保证用户最终能够读取到某操作对系统特定数据的更新。但是随着时间的迁移,不同结点上的同一份数据总是在向趋同的方向变化。也可以简单地理解为,在一段时间后,结点之间的数据会最终达到一致状态。实现最终一致性最常见的系统是DNS域名系统,由于DNS是多级缓存的实现,所以修改DNS记录后不会立刻在全球所有的DNS服务结点生效,需要等DNS服务器缓存过期后,再向源服务器更新新的记录才能生效。

最终一致性可以分为“因果”一致性、“读己之所写”一到性、“会话”一致性、“单调读”一致性以及“单调写”一致性,具体介绍如下:

• “因果”一致性:如果进程A通知进程B它已更新了一个数据项,那么进程B的后续访问将返回更新后的值,且一次写入将保证取代前一次写入。与进程A无因果关系的进程C的访问遵循一般的最终一致性规则。

• “读己之所写”一致性:指的是进程A在修改了数据后,它总能读取到修改过的数据值,而不会读取到原始值。读己之所写一致性是因果一致性的一个特例。

• “会话”一致性:指的是将访问存储系统的进程放到会话的上下文中,若是会话存在,则系统就保证“读己之所写”一致性;若是由于系统宕机或者网络不稳定导致会话终止,则需要建立新的会话。

• “单调读”一致性:指的是进程已经读取过数据对象的某个值,则任何后续访问都不会返回在这个值之前的值,这样就可以保证每个客户端在之后的请求中获取到的数据是最新的数据。

• “单调写”一致性:指的是系统保证来自同一个进程的写操作是顺序执行的。上述最终一致性的不同形式可以进行组合,例如“单调读”一致性和“读己之所写”一致性进行组合,就可以读取自己更新的数据和一旦读取到最新的数据就不会再读到旧版本的数据,这样可以使得存储系统降低了一致性的要求并提供了高可用性。



0 分享到:
和我们在线交谈!