BASE术语解释

Nie*_*est 141 database terminology definition nosql base-db

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

只有很少的文章涉及BASE的细节,而ACID有很多文章详细阐述了每个原子性,一致性,隔离性和耐久性属性.维基百科只用了几行来表达这个词.

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

B asically A vailable,S oft state,E ventual consistency

我使用这篇文章和我的想象力将这些属性解释如下:

基本上可用的可以指的是数据的感知可用性.如果单个节点发生故障,部分数据将不可用,但整个数据层仍然可以运行.

  • 这种解释是正确的,还是指其他的?
  • 更新:Mau的答案中推断,是否意味着整个数据层始终接受新数据,即没有锁定方案阻止数据立即插入?

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

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

最终的一致性意味着在给定足够时间的情况下,更新最终将波及所有服务器.

  • 这个属性对我来说很清楚.

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

或者它只是一个牵强附会和毫无意义的缩写,指的是化学中发现的酸和碱的概念?

Nie*_*est 157

BASE的首字母缩略词由Eric Brewer定义,他也因制定CAP定理而闻名.

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

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

BASE系统放弃了一致性.

  • 基本上可用表示系统确实根据CAP定理保证可用性.
  • 软状态表示即使没有输入,系统的状态也可能随时间而变化.这是因为最终的一致性模型.
  • 最终的一致性表明系统将随着时间的推移变得一致,因为系统在此期间不接收输入.

布鲁尔确实承认这个首字母缩略词是人为的:

那年早些时候,我和我的学生在办公室里找到了[BASE]的缩写词.我同意它有点做作,但"ACID"也是如此 - 比人们意识到的要多得多,所以我们认为它已经足够好了.

  • 基本可用并不保证可用性.这意味着,它主要是可用的,但服务器可能由于各种原因而停机. (22认同)

Mau*_*Mau 39

它与BASE有关:BASE跳线类型总是基本上可用(对于新关系),处于软状态(他的关系没有持续很长时间)和最终一致(有一天他结婚).

  • 嗯,这实际上是我的日常面包,如果你想要一个认真的答案,ACID. (7认同)
  • 相反,BASE 总是更有趣。 (2认同)
  • @Pacerier和Mau,NewSQL怎么样?你会选择NoSQL(BASE)和关系(ACID)吗? (2认同)

Puj*_*ava 6

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

BASE 代表 -

  • 基本可用性- 数据库似乎大部分时间都在工作。
  • 软状态- 存储不必写一致,不同的副本也不必始终相互一致。
  • 最终一致性- 存储在稍后的某个时间点表现出一致性(例如,在读取时延迟)。

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

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

  • 最终一致性实际上会产生不良影响。您是否遇到过 LinkedIn 聊天速度变慢的情况?你回复一句话,然后回复另一句话。然后,由于最终一致性,或者缺乏适当的实施,你最终会发现你的两个回复被调换在一起了。是的,您最终在聊天中收到了 2 条回复,但它们的顺序不正确。 (3认同)

小智 5

  • 基本可用性:数据库似乎在大多数时间都可以工作。

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

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


Jam*_*ard 5

为了补充其他答案,我认为缩写词的派生是为了显示这两个术语之间的范围,以区分 RDMS 与大数据之间事务或请求的可靠性。

\n

从这篇文章酸与碱

\n
\n

在化学中,pH 测量水(水中的溶剂)溶液的相对碱度和酸度。pH 范围从 0\n(强酸性物质,例如电池酸)到 14(强碱性物质,例如谎言);77\xc2\xb0 F (25\xc2\xb0 C) 的纯水的 pH 值为 7,呈中性。

\n

数据工程师巧妙地从化学家那里借用了酸与碱,并\n创建了缩写词,尽管它们的含义并不准确,但在讨论事务处理的可靠性时\n仍然能够恰当地\n表示给定数据库系统中所发生的情况。

\n
\n

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

\n

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

\n

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

\n