cap与分布式系统

umuewwlo  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(411)

当我们谈到nosql分布式数据库系统时,我们知道它们都属于cap-theoram的三分之二。对于一个网络故障和节点故障不可避免的分布式集群,分区容错是必要的,因此让我们从可用性和一致性两个方面进行选择。所以基本上是cp或ap。
我的问题是
hadoop属于哪一类。
假设我有一个包含6个节点和def的集群,在网络故障期间,假设节点a、b、c和节点d、e、f被划分为两个独立的集群。
现在,在一致性和分区容忍系统(cp)模型中,由于节点a中的更新不会复制到节点d,因此系统的一致性将不允许用户更新或读取数据,直到网络再次运行,从而导致数据库关闭。
然而,当在节点a进行更新时,一个可用的、容分区的系统将允许节点d的用户看到旧数据,但不能保证节点d的用户看到最新的数据。但是当网络再次运行一段时间后,它将节点a的最新数据复制到节点d中,从而允许节点d的用户查看最新数据。
从以上两种情况我们可以得出这样的结论:在ap模型中,没有数据库去的空间,因此即使在故障期间也允许用户写和读,并在网络再次启动时向用户承诺最新的数据,那么人们为什么要选择一致性和分区容忍模型(cp)。在我看来,网络故障期间(ap)比(cp)有一个优势,允许用户在(cp)下的数据库关闭时读写数据。
除了Cassandra的最终一致性的概念之外,还有什么系统可以提供cap。
用户何时选择可用性而不是一致性,反之亦然。是否有任何数据库允许用户在cp和ap之间进行相应的选择。
提前感谢:)

kh212irz

kh212irz1#

hdfs有一个独特的中心决策点 namenode . 因此,它只能落在cp端,因为取下namenode会取下整个hdfs系统(没有可用性)。hadoop不会试图隐藏以下内容:
namenode是hdfs集群的单点故障。hdfs目前不是一个高可用性系统。当namenode关闭时,文件系统将脱机。有一个可选的secondarynamenode可以托管在单独的计算机上。它只通过将edits文件合并到fsimage文件来创建名称空间的检查点,不提供任何真正的冗余。
由于存放数据和从何处读取数据的决定总是由namenode处理,后者在内存中保持一致的视图,因此hdfs总是一致的(c)。它还具有分区容限,因为它可以处理松散的数据节点,受复制因子和数据拓扑策略的影响。
有没有什么系统可以一起提供cap?
是的,这类系统经常在市场营销和其他非技术性出版物中提及。
用户何时选择可用性而不是一致性,反之亦然。
这是一个业务用例决策。当可用性更重要时,他们选择ap。当一致性更重要时,他们选择cp。一般来说,当货币易手时,一致性优先。几乎所有其他案例都支持可用性。
是否有任何数据库允许用户在cp和ap之间进行相应的切换
允许您修改写入和读取数量的系统可以根据需要调整为cp或ap。

相关问题