这个问题的动机是从这个伟大的post开始。我终于从Cassandra的最终一致性中得到了一些澄清。Andrew Weaver非常清楚地解释了提交日志发生了什么。现在,我想了解一下当您有两个数据中心并且使用LOCAL_QUORUM一致性时会发生什么情况。场景是这样的:我刚刚完成了对数据中心1的写入,提交日志被刷新/同步到磁盘,另外两个副本也被同步。何时写入第二个数据中心?我想象其中一个实例将启动同步过程,但会有延迟。什么是延迟的?此外,如果数据中心一在同步之前关闭,则它在数据中心二中将不可用。但是,如果在数据中心2的数据中写入相同的行,会发生什么情况?行是如何进行协调的?同样的问题,如果数据中心1在同步过程中出现问题?什么时候数据是一致的,以及是否存在任何陷阱?
谢谢
发布于 2020-02-28 17:46:30
您必须考虑,在您的情况下,到第二个数据中心的复制是以异步方式完成的。延迟一般以毫秒为单位。如果数据中心发生故障,那么您将同一行写入第二个数据中心,这就像是两次不同的写入,因此不同的时间戳和最后一次写入将取胜(当然是在不同数据的情况下)。协调将在修复或读取修复期间发生,或者如果您将以一致性级别全部读取,则也会发生协调。
这是Ryan Svihla写的一篇很好的文章,用不同的案例解释了subjet:
我希望这能帮到你。
https://stackoverflow.com/questions/60438227
复制相似问题