BASE中的“软状态”是什么意思?

时间:2011-01-31 13:13:36

标签: database nosql base-db

BASE代表'基本可用,软状态,最终一致'

所以,我到目前为止:“基本上可用:系统可用,但不一定在任何给定时间点都可以使用它”和“最终一致:在一定时间后所有节点都是一致的,但是在任何给定的时间,情况可能并非如此“(如果我错了,请纠正我。)

但是,'软州'究竟是什么意思呢?我还没有在互联网上找到任何体面的解释。

4 个答案:

答案 0 :(得分:24)

此页面(最初here,现在只能从web archive获得)可能有所帮助:

  

[软状态]是用户输入系统的信息(状态)   如果用户不维护它将会消失。换句话说,   除非刷新,否则信息将过期。

     

相比之下,典型的简单灯开关的位置是   “硬状态”。如果你把它翻过来,它会熬夜,可能永远。它   只有当你(或其他一些用户)明确地改变时,它才会变回   回来操纵它。

BASE的首字母缩略词有点人为,大多数NoSQL商店实际上并不需要以这种方式刷新数据。有another explanation表明软状态意味着系统将在没有用户干预的情况下改变状态,因为最终的一致性(但是这个首字母缩写词的软状态部分是多余的)。

有一些特定的用法,用户确实必须刷新状态;例如,在Cassandra NoSQL数据库中,可以为所有行提供生存时间,使其完全处于软状态(除非刷新,否则它们将过期),但这是一种不寻常的使用模式(基本上是瞬态缓存)

“软状态”也可能适用于Cassandra内的八卦协议;新节点可以从收到的八卦消息中确定集群的状态,并且必须不断刷新此集群状态以检测无响应的节点。

答案 1 :(得分:5)

软状态是指未保留在磁盘上的数据,但如果发生故障,则可以恢复它(例如,从高质量的图像重新创建质量较低的图像)。一篇解决这个问题和其他有趣问题的好文章是Cluster-Based Scalable Network Services

答案 2 :(得分:2)

我在课堂上教过“软状态”意味着系统的状态可能会随着时间的推移而改变(即使在没有输入的情况下),因为可能会因“最终的一致性”而发生变化。这就是为什么说“软”状态。

有些来源:link

答案 3 :(得分:0)

BASE系统放弃一致性以提高数据库的性能。因此,大多数着名的nosql数据库都比ACID兼容的关系数据库更强大。

软状态表示即使没有输入,系统状态也可能随时间而变化。这是因为最终的一致性模型。 最终的一致性表明系统将随着时间的推移变得一致,因为系统在此期间没有收到输入。