Cassandra一次在几台服务器上清理

Ana*_*nov 5 cassandra nodetool cassandra-2.0

我们有一个大型的Cassandra集群18台服务器(在一台服务器上靠近5T数据)

http://docs.datastax.com/en/cassandra/2.0/cassandra/operations/ops_add_node_to_cluster_t.html - 我们在此文档后添加了新节点.

添加新服务器后,我们开始清理数据的过程(nodetool cleanup)

在文档建议中:在所有新节点运行后,在每个先前存在的节点上运行nodetool cleanup以删除不再属于这些节点的密钥.等待清理在一个节点上完成,然后再执行下一个节点

但在我们的案例中,一台服务器的清理工作需要2-3天.我的问题是我可以在多台服务器上立即开始清理,2或3 ...

或者它可能导致数据丢失?

更多信息.

我们使用带有vnodes的cassandra 2.0.13.我们还在cassandra保存文件.

复制因子= 3

Ric*_*ard 6

清理不涉及任何其他节点,因此并行运行是安全的.但是,您可能希望一次运行一个以减少性能影响,因为清理可能会使用大量磁盘I/O.

  • 为了记录,理查德是对的,但在Cassandra 2.1及更高版本中,还有另一个问题 - 使用所有压实机在CF中的所有sstables上并行运行清理.压缩将落在该节点上,并且根据摄取量,磁盘上可能有数百或数千个sstables,这会显着影响读取性能.因此,一次在一个节点上运行清理可能有助于在清理期间保持读取的低延迟. (3认同)