当我们谈论nosql分布式数据库系统时,我们知道所有这些都属于CAP theoram的三分之二.对于分布式集群,网络故障和节点故障是不可避免的,因此分区容差是必需的,因此我们从可用性和一致性中选择一个.所以它基本上是CP或AP.
我的问题是
hadoop属于哪个类别.
假设我有一个具有6个节点ABC和DEF的集群,在网络故障期间,假设节点A,B,C和节点D,E,F被分成两个独立的集群.
现在处于一致且分区容忍的系统(CP)模型中,因为节点A中的更新不会复制到节点D,系统的一致性将不允许用户更新或读取数据,直到网络再次运行,从而使数据库关闭.
而可用和分区容忍系统将允许节点D的用户在节点A处进行更新时查看旧数据,但不保证节点D的用户获得最新数据.但是在网络再次运行一段时间之后,它将节点A的最新数据复制到节点D中,因此允许节点D的用户查看最新数据.
从上述两种情况我们可以得出结论,在AP模型中,没有数据库进入的空间,因此即使在故障期间也允许用户进行写入和读取,并且当网络再次启动时向用户提供最新数据,那么为什么人们会选择Consistent和分区容忍模型(CP).在我看来,网络故障(AP)具有优于(CP)的优势,允许用户在(CP)下的数据库关闭时读取和写入数据.
是否有任何系统可以提供CAP,排除Cassandra最终一致性的概念.
用户何时选择可用性而不是一致性,反之亦然.是否有任何数据库允许用户在CP和AP之间相应地切换其选择.
提前致谢 :)
Rem*_*anu 15
HDFS有一个独特的中心决策点,即namenode.因此它只能落在CP端,因为取下namenode会占用整个HDFS系统(无可用性).Hadoop不会试图隐藏这个:
NameNode是HDFS群集的单点故障.HDFS目前不是高可用性系统.NameNode关闭时,文件系统将脱机.有一个可选的SecondaryNameNode,可以托管在单独的计算机上.它仅通过将编辑文件合并到fsimage文件中来创建命名空间的检查点,并且不提供任何实际冗余.
由于decipeion放置数据的位置和可以读取的位置总是由namenode处理,它在内存中保持一致的视图,HDFS始终是一致的(C).它也是分区容忍的,因为它可以处理丢失的数据节点,受复制因素和数据拓扑策略的限制.
有没有可以提供CAP的系统?
是的,市场营销和其他非技术出版物中经常提到这样的系统.
用户何时选择可用性而不是一致性,反之亦然.
这是一个商业用例决定.当可用性更重要时,他们选择AP.当一致性更重要时,他们选择CP.通常,当钱转手时,一致性优先.几乎所有其他案例都倾向于可用性.
是否有任何数据库允许用户在CP和AP之间相应地切换其选择
允许您修改写入和读取仲裁的系统可以根据需要调整为CP或AP.