当节点再次向上和向上时,Cassandra不执行“延迟”复制吗?

时间:2015-07-31 03:58:48

标签: cassandra cassandra-2.0

我有一个2节点的Cassandra集群。复制因子为2.客户端仅将数据发送到节点1。如果两个节点都在运行,则数据从节点1复制到节点2.但是,如果我首先仅启动节点1,则客户端将数据发送到节点1,然后停止发送数据。之后我启动节点2.我希望数据从节点1“延迟”(或异步)复制到节点2,但事实并非如此。如何配置此功能?

我的Cassandra版本是2.1.6。

2 个答案:

答案 0 :(得分:1)

每当节点发生故障而写入发生意味着它错过了存储数据时,协调器将存储一个提示'这样节点一旦重新联机就会收到数据。

此提示不会永久保留,如果节点停机时间过长则会被丢弃。您可以通过cassandra.yaml中的max_hint_window_in_ms配置此时间。我相信默认为3小时。增加此超时可以解决您的问题。

否则,当请求此行数据时,将通过读取修复解决冲突。如果设置了足够的读取一致性级别,则在将结果返回给客户端之前将解析此问题。

http://docs.datastax.com/en/cassandra/2.0/cassandra/dml/dml_about_hh_c.html

答案 1 :(得分:0)

首先你必须设置max_hint_window_in_ms。 其次,你必须设置两台机器的令牌号,如果在插入时,行键的令牌找不到正确的cassandra节点,那么它将转到另一个节点。如果您有两个节点集群,那么也将两个节点都作为种子节点。