的BASE缩写,是用于描述特定的数据库,通常NoSQL数据库的属性.它通常被称为与ACID相反.
只有很少的文章涉及BASE的细节,而ACID有很多文章详细阐述了每个原子性,一致性,隔离性和耐久性属性.维基百科只用了几行来表达这个词.
这让我对定义有一些疑问:
B asically A vailable,S oft state,E ventual consistency
我使用这篇文章和我的想象力将这些属性解释如下:
基本上可用的可以指的是数据的感知可用性.如果单个节点发生故障,部分数据将不可用,但整个数据层仍然可以运行.
这种解释是正确的,还是指其他的?
更新:从Mau的答案中推断,是否意味着整个数据层始终接受新数据,即没有锁定方案阻止数据立即插入?
软状态:我所能找到的只是需要周期刷新的数据概念.如果没有刷新,数据将过期或被删除.
自动删除数据库中的数据对我来说似乎很奇怪.
过期或过时的数据更有意义.但是这个概念适用于任何类型的冗余数据存储,而不仅仅是NoSQL.它描述了别的吗?
最终的一致性意味着在给定足够时间的情况下,更新最终将波及所有服务器.
这个属性对我来说很清楚.
有人可以详细解释这些属性吗?
或者它只是一个牵强附会和毫无意义的缩写,指的是化学中发现的酸和碱的概念?
BASE的首字母缩略词由Eric Brewer定义,他也因制定CAP定理而闻名.
CAP定理指出分布式计算机系统不能同时保证以下三个属性:
一致性
可用性
分区容差
BASE系统放弃了一致性.
基本上可用表示系统确实根据CAP定理保证可用性.
软状态表示即使没有输入,系统的状态也可能随时间而变化.这是因为最终的一致性模型.
最终的一致性表明系统将随着时间的推移变得一致,因为系统在此期间不接收输入.
布鲁尔确实承认这个首字母缩略词是人为的:
那年早些时候,我和我的学生在办公室里找到了[BASE]的缩写词.我同意它有点做作,但"ACID"也是如此 - 比人们意识到的要多得多,所以我们认为它已经足够好了.
它与BASE有关:BASE跳线类型总是基本上可用(对于新关系),处于软状态(他的关系没有持续很长时间)和最终一致(有一天他会结婚).
基本可用性:数据库似乎在大多数时间都可以工作。
软状态:存储不必始终保持写一致或相互一致。
最终一致性:就如何进行任何数量的更改而言,数据应始终保持一致。