BASE术语解释


170

BASE缩写,是用于描述特定的数据库,通常NoSQL数据库的属性。它通常被称为ACID的反义词。

仅有几篇文章涉及BASE的细节,而ACID则有很多文章详细介绍了原子性,一致性,隔离性和耐用性。维基百科只用了几行字样。

这使我对定义有一些疑问:

asically vailable,s ^经常状态,È ventual一致性

利用本文和我的想象,我对这些属性的解释如下:

基本上可用可以指数据的感知可用性。如果单个节点发生故障,则部分数据将不可用,但整个数据层将保持运行状态。

  • 这种解释是正确的,还是其他含义?
  • 更新:Mau的答案推论得出,这是否意味着整个数据层始终都在接受新数据,也就是说,没有可以防止立即插入数据的锁定方案?

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

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

最终的一致性意味着,如果有足够的时间,更新将最终传播到所有服务器。

  • 我很清楚这个属性。

有人可以详细解释这些属性吗?

还是仅仅是牵强附会,毫无意义的首字母缩略词,指的是化学中发现的酸和碱的概念?

Answers:


194

BASE的首字母缩略词是由Eric Brewer定义的,Eric Brewer也以制定CAP定理而闻名。

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

  • 一致性
  • 可用性
  • 分区容限

BASE系统放弃了一致性。

  • 根据CAP定理,基本上可用表明系统确实保证了可用性。
  • 软状态表示即使没有输入,系统的状态也可能随时间变化。这是由于最终的一致性模型。
  • 最终的一致性表示,假设系统在这段时间内没有收到输入,则该系统将随着时间的推移变得一致。

Brewer确实承认该缩写是人为的

那年早些时候,我和我的学生在他们办公室里想出[BASE]的缩写。我同意它有点虚构,但是“ ACID”也是如此-远远超出人们的认识,因此我们认为它足够好。


33
基本上可用并不保证可用性。这意味着它大多数都可用,但是服务器可能由于各种原因而停机。
DarthVader 2011年

@ Neils,ACID会放弃可用性或分片容忍度吗?
Pacerier 2014年

@Pacerier,这就是CAP定理开始显示其缺陷的地方:)如果系统保证分区容忍度,则在分区的情况下会牺牲可用性。如果系统保证可用性,则放弃分区容限,这意味着分区将使系统不可用(或不一致)。因此,您可以看到“可用性”和“分区容忍度”齐头并进。本文中对此有更多详细信息。
Niels van der Rest 2014年

1
从科学的角度来看,这是不科学的,但是在谈论Web服务时,ACID通常与SOAP相关联,而BASE与REST(RESTful)服务更为紧密相关。有关最终一致性的更详细的讨论,请参阅MongoDB和CouchDB支持者之间的辩论。
查尔斯·罗斯(Charles Ross),2015年

CAP“定理”在数学上被分解(但非常易于理解),由Mark Burgess以一种独特的智能方式进行了讨论,我正在阅读他的文章。(我首先被Wikipedia链接到那里。)
通配符

45

这与BASE有关:BASE跳线类型始终(在新状态下)基本可用(处于新状态),处于软状态(他的关系没有持续很长时间)并且最终保持一致(他有一天结婚)。


好的,您是说ACID数据库比BASE好得多吗?
Pacerier 2014年

2
相反,BASE总是更有趣。
2014年

8
好吧,那实际上是我的日常食物,如果您想得到一个认真的答案,那就去酸吧。
2014年

1
@Pacerier埃里克·布鲁尔豪创造了这个词BASE,表明,尽管银行和金融机构谈ACID约束,在现实中,它们不是严格意义上(highscalability.com/blog/2013/5/1/...
andand

2
@Pacerier和Mau,NewSQL呢?您会选择使用NoSQL(BASE)和关系式(ACID)吗?
Boris Mocialov

6
  • 基本可用性:该数据库似乎大部分时间都可以工作。

  • 软状态:存储不必始终保持写一致或相互一致。

  • 最终的一致性:关于如何进行任何数量的更改,数据应始终保持一致。


4

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

BASE代表-

  • 基本可用性 -数据库似乎大部分时间都可以工作。
  • 软态 -存储不必保持写一致,不同的副本也不必始终保持一致。
  • 最终一致性 -商店在以后的某个时刻表现出一致性(例如,在读取时懒惰)。

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

示例:如果他们的推文在短时间内在社交网络中不一致,没人会介意。获得即时响应比保持一致的用户信息状态更为重要。


1
最终的一致性实际上会产生不良影响。您是否曾经历过LinkedIn聊天速度下降的问题。您回答一个句子,然后再回答另一个。然后,由于最终的一致性,或者缺乏适当的实现,您最终会将两个答复切换到一起。是的,您最终在聊天中收到2条回复,但它们的顺序不正确。
zmechanic

2

为了增加其他答案,我认为首字母缩写词的出现是为了显示两个术语之间的比例,以区分RDMS与大数据之间的事务或请求的可靠性。

从这篇文章酸与碱

在化学中,pH可以测量水溶液(水溶液)的相对碱性和酸性。pH值范围从0(高酸性物质,例如电池酸)到14(高碱性物质,例如lie);77°F(25°C)的纯水的pH值为7,并且是中性的。

数据工程师从化学家那里巧妙地借用了酸对碱,并创建了首字母缩写词,尽管其含义不确切,但在讨论事务处理的可靠性时,仍然很容易表示给定数据库系统中正在发生的事情。

还有一点,因为我使用Elasticsearch处理大数据。为了明确起见,Elasticsearch的一个实例是一个节点,一组节点组成一个集群。

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

如果您有3个主节点并且当前指挥的主节点发生故障,则系统将处于运行状态,尽管状态效率较低,并且另一个主节点将取代其作为主指挥的主节点。如果两个主节点发生故障,系统仍将保持运行状态,最后一个主节点将接管工作。


0

可能是因为ACID是物质在化学中表现出的一组特性,而BASE是它们的互补集,因此可能只是为了显示两者之间的对比,即首字母缩略词由``然后基本可用''组成“软状态最终一致性”已确定为完整形式。


2
这也许可以解释首字母缩略词是如何存在的,但不能解释各种特性的含义
JMB

使用诸如“ Basically”之类的词在含义上甚至都不重要,这表明首先选择了首字母缩写词(ACID与BASE),然后发现这些词可以填补首字母缩写词的部分。这可能就是为什么我们找不到这么多解释和参考(与ACID中的单词相比,您可以在谈论RDBMS的每个页面中找到它们的解释)。
siebenheaven

我发现这很有趣,因为“基本可用”确实太过强制了。
里卡多·佩德罗尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.