为什么Cassandra不一致但HBase一致?

为什么Cassandra不一致但HBase一致?,cassandra,hbase,Cassandra,Hbase,在阅读卡桑德拉和HBase的阅读材料时,我发现卡桑德拉并不一致,但HBase是一致的。没有找到合适的阅读材料 有人能提供关于这个话题的博客/文章吗?卡桑德拉最终是一致的。基于布鲁尔定理(也称为CAP定理),分布式数据系统只能保证实现以下3个特征中的2个: 一致性 可用性 分区公差 这意味着Cassandra在其默认配置中可以保证可用和分区容错,并且在实现一致性之前可能会有一个延迟。但这是可配置的,因为您可以增加任何查询的一致性级别,从而牺牲分区容差 web上有多种资源,您应该查找“Cassa

在阅读卡桑德拉和HBase的阅读材料时,我发现卡桑德拉并不一致,但HBase是一致的。没有找到合适的阅读材料


有人能提供关于这个话题的博客/文章吗?

卡桑德拉最终是一致的。基于布鲁尔定理(也称为CAP定理),分布式数据系统只能保证实现以下3个特征中的2个:

  • 一致性
  • 可用性
  • 分区公差
这意味着Cassandra在其默认配置中可以保证可用和分区容错,并且在实现一致性之前可能会有一个延迟。但这是可配置的,因为您可以增加任何查询的一致性级别,从而牺牲分区容差


web上有多种资源,您应该查找“Cassandra中的最终一致性”,您可以从中开始,或者实际上,从1.1版HBase开始:

一致性。strong
是HBase提供的默认一致性模型。 如果表的区域复制=1,或在具有 区域副本,但读取是以这种一致性完成的,读取 始终由主区域执行,因此不会出现 与以前行为的任何变化,客户始终遵守 最新数据

如果以一致性时间线执行读取,则读取 RPC将首先发送到主区域服务器。过了一会儿 间隔(
hbase.client.primaryCallTimeout.get
,默认为10ms), 如果 主服务器不响应

换句话说,强一致性是通过只允许对执行写入操作的复制副本进行读取来实现的,而时间轴一致性(参考指南明确区分时间轴与最终一致性)行为提供了低延迟的高可用读取,而读取陈旧数据的机会很小