BASE首字母缩写用于描述某些数据库的属性,通常是NoSQL数据库。它通常被称为ACID的反义词。

只有少数文章涉及BASE的细节,而ACID有大量文章详细介绍原子性、一致性、隔离性和持久性属性。维基百科上只写了几行字。

这给我留下了一些关于定义的问题:

基本可用,软状态,最终一致性

运用这篇文章和我的想象,我对这些属性的解释如下:

基本可用指的是数据的可获得性。如果单个节点发生故障,部分数据将不可用,但整个数据层仍可运行。

这种解释是正确的,还是指的是别的什么东西? 更新:从Mau的回答中推断,这是否意味着整个数据层一直在接受新数据,即不存在阻止数据立即插入的锁定场景?

软状态:我所能找到的只是数据需要周期刷新的概念。如果不进行刷新,数据将过期或被删除。

自动删除数据库中的数据对我来说很奇怪。 过期或过期的数据更有意义。但这个概念适用于任何类型的冗余数据存储,而不仅仅是NoSQL。它描述的是别的东西吗?

最终的一致性意味着,只要有足够的时间,更新将最终波及所有服务器。

这个性质我很清楚。


有人能详细解释一下这些属性吗?

或者它只是一个牵强的和毫无意义的首字母缩略词,指的是化学中发现的酸和碱的概念?


当前回答

ACID和BASE分别是RDBMS和NoSQL的一致性模型。ACID交易更加悲观,即他们更担心数据安全。在NoSQL数据库世界中,ACID事务不太流行,因为一些数据库已经放松了对即时一致性、数据新鲜度和准确性的要求,以获得其他好处,如可伸缩性和弹性。

BASE代表-

基本可用性——数据库似乎在大多数时间都能正常工作。 软状态——存储不需要写一致,不同的副本也不需要一直相互一致。 最终一致性——存储在以后的某个点上显示一致性(例如,在读取时延迟)。

因此,BASE放宽了一致性,允许系统即使在不一致的状态下也能处理请求。

例子:没有人会介意自己的推文在短时间内与社交网络不一致。获得即时响应比保持用户信息的一致状态更重要。

其他回答

这和BASE有关:BASE型的跳跃者总是基本可用(对新恋情),处于软状态(他的恋情都不长),并且最终稳定(总有一天他会结婚)。

ACID和BASE分别是RDBMS和NoSQL的一致性模型。ACID交易更加悲观,即他们更担心数据安全。在NoSQL数据库世界中,ACID事务不太流行,因为一些数据库已经放松了对即时一致性、数据新鲜度和准确性的要求,以获得其他好处,如可伸缩性和弹性。

BASE代表-

基本可用性——数据库似乎在大多数时间都能正常工作。 软状态——存储不需要写一致,不同的副本也不需要一直相互一致。 最终一致性——存储在以后的某个点上显示一致性(例如,在读取时延迟)。

因此,BASE放宽了一致性,允许系统即使在不一致的状态下也能处理请求。

例子:没有人会介意自己的推文在短时间内与社交网络不一致。获得即时响应比保持用户信息的一致状态更重要。

BASE首字母缩写是由Eric Brewer定义的,他也因制定CAP定理而闻名。

CAP定理指出,分布式计算机系统不能同时保证以下三个属性:

一致性 可用性 分区容忍

BASE系统放弃了一致性。

根据CAP定理,基本可用表示系统确实保证可用性。 软状态表示系统的状态可能随着时间的推移而改变,即使没有输入。这是因为最终一致性模型。 最终一致性表示系统将随着时间的推移变得一致,前提是系统在这段时间内没有接收输入。

布鲁尔承认,这个首字母缩写词是人为设计的:

当年早些时候,我和我的学生在他们的办公室里想出了(BASE)这个缩写词。我同意它有点做作,但“ACID”也是如此——比人们意识到的要多得多,所以我们认为它已经足够好了。

基本可用性:数据库似乎在大多数时间都能正常工作。 软状态:存储不需要始终保持写一致或相互一致。 最终的一致性:数据应该总是一致的,关于如何执行任意数量的更改。

这可能只是因为酸是物质(在化学中)表现出的一组性质,而碱是它们的一组补充。所以这可能只是为了显示两者之间的对比,这个首字母缩略词被创造出来,然后“基本可用软状态最终一致性”被确定为完整形式。