当我们谈到nosql分布式数据库系统时,我们知道它们都属于CAP中的三分之二。对于一个网络故障和节点失效不可避免的分布式集群来说,分区容错是必要的,因此我们不得不从可用性和一致性的角度来选择一个。所以基本上是CP或AP。
我的问题是
(预先谢谢:)
发布于 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。
https://stackoverflow.com/questions/19923196
复制相似问题