如果只有一个客户端写入集群,我是否需要 cassandra 的时钟同步?

Do I need clock synchronisation for cassandra if only one client writes to cluster?

从cassandra的文档中我了解到cassandra使用查询时间戳来解决两次写入之间的冲突,因此需要同步集群所有节点上的时钟。在我的用例中,我们只有一个客户端写入集群,多个客户端从集群读取。因此,如果我使用客户端时间戳生成器(我认为这是版本>3 的默认设置),我是否仍需要让集群节点时钟相互同步?

在与存储数据关联的写入时间戳的上下文中,如果您使用客户端时间戳和单个客户端,则不需要时钟同步。

但是,我仍然不鼓励至少尝试在 Cassandra 集群中保持时钟同步。在某些情况下,时钟偏差会影响 Cassandra 的其他部分。例如,CASSANDRA-11991 显示了时钟偏差影响用于轻量级交易的节点时钟的情况。虽然该特定问题已得到解决,但努力进行同步似乎仍然是个好主意。

这取决于:

  1. 插入 using timestamp [millis] - 很好
  2. 在主键列中插入客户端生成的时间戳信息 - 很好
  3. 没有客户端在主键中设置时间的常规插入 - 保持时钟同步可能是个好主意