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

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

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

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

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

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

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

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

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

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

这个性质我很清楚。


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

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


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


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

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

一致性 可用性 分区容忍

BASE系统放弃了一致性。

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

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

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


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


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


为了补充其他答案,我认为这些首字母缩写是为了显示两个术语之间的比例,以区分RDMS与大数据之间的事务或请求有多可靠。

从这篇文章酸与碱

In Chemistry, pH measures the relative basicity and acidity of an aqueous (solvent in water) solution. The pH scale extends from 0 (highly acidic substances such as battery acid) to 14 (highly alkaline substances like lie); pure water at 77° F (25° C) has a pH of 7 and is neutral. Data engineers have cleverly borrowed acid vs base from chemists and created acronyms that while not exact in their meanings, are still apt representations of what is happening within a given database system when discussing the reliability of transaction processing.

还有一点,由于我一直在使用Elasticsearch处理大数据,如果我解释一下它的结构将会有所帮助。Elasticsearch的一个实例是一个节点,一组节点组成一个集群。

对我来说,从实际的角度来看,在这种情况下,BA(基本可用)具有多个主节点来处理Elasticsearch集群及其操作的想法。

如果您有3个主节点,当前的指导主节点宕机,系统将保持正常,尽管处于较低的效率状态,另一个主节点将取代它作为主要指导主节点。如果两个主节点宕机,系统仍然正常运行,最后一个主节点接管。


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

BASE代表-

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

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

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