BASE术语的解释
BASE的首字母缩写是用来描述某些数据库的属性,通常是NoSQL数据库。 它通常被称为ACID的对立面。
只有很less的文章涉及到BASE的细节,而ACID有大量的文章详细阐述了每个primefaces性,一致性,隔离性和耐用性。 维基百科只用了几行 。
这给我留下了一些关于定义的问题:
B asically可用的 , S经常状态, E ventual一致性
我用这篇文章和我的想象力解释了这些性质:
基本可用可以指的是数据的可用性。 如果单个节点发生故障,部分数据将不可用,但整个数据层仍然可以运行。
- 这个解释是正确的吗?还是它指的是别的?
- 更新:从Mau的答案中推导出来,是否意味着整个数据层总是接受新的数据,即没有lockingscheme阻止数据立即被插入?
软状态 :所有我能find的是需要刷新周期的数据的概念。 没有刷新,数据将过期或被删除。
- 自动删除数据库中的数据对我来说似乎很陌生。
- 过期或陈旧的数据更有意义。 但是这个概念将适用于任何types的冗余数据存储,而不仅仅是NoSQL。 它是否描述了其他的东西呢?
最终的一致性意味着更新最终会在给定足够时间的情况下蔓延到所有服务器。
- 这个属性对我来说很清楚。
有人能详细解释这些属性吗?
或者,这仅仅是一个牵强,毫无意义的首字母缩略词,指的是化学中的酸和碱的概念?
BASE的首字母缩写词是Eric Brewer所定义的,他也以制定CAP定理而着称 。
CAP定理指出分布式计算机系统不能同时保证以下三个属性:
- 一致性
- 可用性
- 分区容忍
BASE系统放弃一致性。
- 基本可用表明系统保证可用性,就CAP定理而言。
- 软状态表示即使没有input,系统状态也会随时间而改变。 这是因为最终的一致性模型。
- 最终的一致性表明,随着时间的推移,系统将保持一致,因为系统在那段时间内没有得到input。
布鲁尔确实承认这个缩写是人为的 :
那年早些时候,我和我的学生们在办公室里提出了BASE的缩写。 我认为它有点做作,但“酸”也是如此 – 比人们意识到的要多得多,所以我们认为它已经足够好了。
它与BASE有关 :BASE跳线types总是基本可用(对于新的关系),处于软状态(他的关系没有持续很长时间),并且最终一致(有一天他将结婚)。