我了解到,当你排空一个节点后,可以删除文件然后重新启动节点。这个方法可以正常运行,但是我只尝试了同时排空所有节点、关闭整个集群、删除文件并重新启动的情况。
如果我只重启一个节点会发生什么?据我所知,存在某种风险,即重启节点将接受读取请求,并使用来自其他副本的数据执行读取修复。
是否有人知道在保持整个集群运行以服务其他keyspace的情况下,截断keyspace最安全的程序是什么?
我了解到,当你排空一个节点后,可以删除文件然后重新启动节点。这个方法可以正常运行,但是我只尝试了同时排空所有节点、关闭整个集群、删除文件并重新启动的情况。
如果我只重启一个节点会发生什么?据我所知,存在某种风险,即重启节点将接受读取请求,并使用来自其他副本的数据执行读取修复。
是否有人知道在保持整个集群运行以服务其他keyspace的情况下,截断keyspace最安全的程序是什么?
$ bin/cassandra-cli -h localhost
[default@unknown] use keyspace1;
Authenticated to keyspace: Keyspace1
[default@Keyspace1] truncate standard1;
standard1 truncated.
按设计,这不是无竞争(这需要重量级锁定);通常情况下,您只会截断一个不提供实时读取的CF。但如果出于某种原因必须这样做,请先禁用读取修复("update column family standard1 with read_repair_chance=0")。