当我们谈论nosql分布式数据库系统时,我们知道它们都属于CAP定理的三分之二。对于网络故障和节点故障不可避免的分布式集群,分区容忍是必要的,因此让我们从可用性和一致性中选择一个。所以它基本上是CP或AP。
我的问题是
hadoop属于哪一类。
假设我有一个包含 6 个节点 ABC 和 DEF 的集群,在网络故障期间,假设节点 A、B、C 和节点 D、E、F 分为两个独立的集群。
现在在一致和分区容错系统 (CP) 模型中,因为节点 A 中的更新不会复制到节点 D,系统的一致性不会允许用户更新或读取数据,直到网络再次运行,从而使数据库关闭。
而可用和分区容错系统将允许节点 D 的用户在节点 A 进行更新时查看旧数据,但不保证节点 D 的用户获得最新数据。但是在网络再次运行一段时间后,它会将节点 A 的最新数据复制到节点 D 中,从而允许节点 D 的用户查看最新数据。
从以上两种情况我们可以得出结论,在 AP 模型中,数据库没有运行空间,因此即使在故障期间也允许用户写入和读取,并在网络再次启动时向用户承诺最新数据,那么人们为什么要选择一致和分区容错模型(CP)。在我看来,在网络故障期间(AP)比(CP)具有优势,允许用户在(CP)下的数据库关闭时读取和写入数据。
除了 Cassandra 的最终一致性的概念之外,有没有可以一起提供 CAP 的系统。
用户何时选择可用性而不是一致性,反之亦然。是否有任何数据库允许用户在 CP 和 AP 之间相应地切换其选择。
提前致谢 :)