首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式系统

分布式系统
EN

Stack Overflow用户
提问于 2013-11-12 07:21:33
回答 1查看 5.2K关注 0票数 11

当我们谈到nosql分布式数据库系统时,我们知道它们都属于CAP中的三分之二。对于一个网络故障和节点失效不可避免的分布式集群来说,分区容错是必要的,因此我们不得不从可用性和一致性的角度来选择一个。所以基本上是CP或AP。

我的问题是

  1. hadoop属于哪一类。
  2. 假设我有一个6节点的集群,ABC和DEF,在网络故障期间,我们假设节点A,B,C和节点D,E,F被划分为两个独立的集群。 现在,在一致性和分区容忍系统(CP)模型中,由于节点A中的更新不会复制到节点D,所以系统的一致性不允许用户在网络再次运行之前更新或读取数据,从而使数据库瘫痪。 在节点A进行更新时,允许节点D的用户查看旧的数据,但不能保证节点D的用户获得最新的数据。但是,当网络再次运行时,它会将节点A的最新数据复制到节点D中,从而允许节点D的用户查看最新的数据。 在以上两种情况下,我们可以得出结论:在AP模型中,没有数据库的空间,因此即使在失败时也允许用户进行写入和读取,并且在网络再次运行时承诺用户最新的数据,那么为什么人们会选择一致和分区容忍模型(CP)。在我看来,在网络故障(AP)期间,与(CP)相比,允许用户在(CP)下的数据库关闭时读取和写入数据具有优势。
  3. 是否有任何系统可以共同提供CAP,排除Cassandra最终一致性的概念。
  4. 用户何时选择可用性而不是一致性,反之亦然。是否有任何数据库允许用户在CP和AP之间相应地切换其选择。

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 08:14:07

HDFS有一个独特的中央决策点,即namenode。因此,它只能落在CP端,因为namenode降低了整个HDFS系统(没有可用性)。Hadoop并不试图隐藏这一点:

NameNode是HDFS集群的一个单一故障点。HDFS目前不是一个高可用性系统。当NameNode关闭时,文件系统就会脱机。有一个可选的SecondaryNameNode可以托管在一个单独的机器上。它只通过将编辑文件合并到fsimage文件和不会提供任何真正的冗余来创建名称空间的检查点。

由于从何处放置数据以及从中读取数据的位置总是由namenode处理,namenode在内存中保持了一致的视图,因此HDFS始终是一致的(C)。它还具有分区容忍度,因为它可以处理松散的数据节点,这取决于复制因子和数据拓扑策略。

是否有任何系统可以一起提供CAP?

是的,这类系统经常在市场营销和其他非技术出版物中提到.

用户何时选择可用性而不是一致性,反之亦然。

这是一个业务用例决策。当可用性更重要时,他们选择AP。当一致性更重要时,他们选择CP。一般来说,当金钱交到手中时,一致性优先。几乎所有其他的案例都支持可用性。

是否有任何数据库允许用户在CP和AP之间相应地切换其选择?

允许您同时修改写和读quorum的系统可以根据需要调优为CP或AP。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19923196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档