如果我们以不存在副本节点(数据存储在一个位置/仅节点)的方式配置我们的复制因子,并且包含请求数据的节点已关闭,请求将如何由Cassandra DB处理?Cassandra DB - 节点已关闭,并且请求获取该节点中的数据
它会返回没有数据或其他节点八卦,并以某种方式从失败的节点(存储)中获取数据并发送所需的响应?如果数据被拾取,节点之间的数据传输是否会在节点关闭(GOSSIP协议)或请求完成后立即发生?
对GOSSIP的发生和Cassandra的高可用性进行了长时间的研究,但由于我不想浪费额外的存储空间来偶尔发生故障,所以想知道“无副本”情况下数据的可用性。需要可用性和没有数据丢失(虽然延迟)
通过请求失败你的意思querie的回应将是空的数据或错误?因此,我假设没有系统会自动开始从故障节点的存储中恢复数据并分发,直到我们修复节点,如果不修复,数据将永远丢失。 –
对于任何请求,查询都会导致错误,因为没有足够的副本满足请求的一致性级别。在写入的情况下,它仍将作为提示存储。一般来说,你在这里试图做的是反模式,因为C *依靠数据复制来实现高可用性机制 – bechbd