【发布时间】:2011-02-03 14:13:50
【问题描述】:
我目前正在运行一个存储 4TB 数据的 12 节点 Cassandra 集群,复制因子设置为 3。为了应用程序更新的需要,我们需要更改密钥空间的配置,我们希望尽可能避免任何停机时间。
我在邮件列表中读到,最好的方法是:
- 在集群的一台服务器上杀死 cassandra 进程
- 再次启动,等待commit log写入磁盘,再次kill掉
- 在 storage.xml 文件中进行修改
- 根据我们所做的更改重命名或删除数据目录中的文件
- 启动 cassandra
- 转到列表中的下一个服务器的 1
我的问题是:
- 我是否充分理解了流程?
- 是否存在数据损坏风险?
- 在这个过程中,同一个集群,同一个keyspace中会有不同版本的storage.xml文件的服务器。有问题吗?
- 如果我们不仅添加、重命名和删除 ColumnFamilies,而且如果我们更改 CompareWith 参数/将现有的列族转换为超级列族,则会出现与上述相同的问题。还是我们需要改名?
感谢您的回答。这是我第一次这样做,我有点害怕。
【问题讨论】:
-
嗨皮埃尔:你有没有想出一个好方法来做到这一点?我即将做同样的事情,我的步骤列表听起来很相似,但我想知道它是如何为你工作的。谢谢!
-
Clint:按照每一步,整个过程都成功了,没有停机或数据丢失。开始之前我有点害怕,但我对结果很满意,虽然这可能需要时间......
标签: cassandra