【发布时间】:2016-01-20 23:01:57
【问题描述】:
在introduction course of Cassandra DataStax 中,他们说 Cassandra 集群节点的所有时钟都必须同步,以防止对“旧”数据进行 READ 查询。
如果一个或多个节点出现故障,它们将无法获得更新,但一旦它们再次备份 - 它们就会更新并且没有问题...
那么,为什么 Cassandra 集群需要在节点之间同步时钟?
【问题讨论】:
-
我的想法是同步依赖于知道更改发生的时间。如果一个节点知道它在给定时间同步,那么另一个节点使用更早的时间戳写入数据,第一个节点将不知道它需要重新同步该数据。然后使用第一个节点的人将读取旧数据。我不确定为什么节点关闭会导致此问题。如果它出现故障,没有人可以对其进行更改,其他人需要同步。当它重新启动时,它将知道上次同步的时间,并将根据他们自那时以来的更改同步到其他人。
标签: cassandra