2013-07-10 72 views
8

我目前正在将21节点群集从0.8升级到1.0.11版本。 cassandra升级过程要求在软件升级(通过nodetool升级稳定性)后将sstable更新为最新格式。这个过程似乎需要很长时间。我有一个节点已经运行了48小时,仍然没有完成。更新后运行nodetool upgradedesstables的最佳方式是什么?

我想知道是否建议在所有节点上并行执行此操作。具体来说,性能影响是什么?这个群集使用相当繁重,需要全天候提供。

+1

3年后,我有同样的问题。你是如何设法使其工作的? – FGRibreau

回答

6

压缩期间,您的节点将以“compaction_throughput_mb_per_sec”的速度重写每个sstable。

我的猜测是性能影响与此设置的值直接相关。较低的值(默认值为16Mb,可以降低)应该允许升级群集,而不会降低速度。

0

我在所有节点上同时运行升级。我运行命令(在Linux上)

nohup nodetool upgradesstables & 

然后注销并保持它运行。这是一项低优先级的任务,只要需要重新编写需要重写的所有sstable即可。升级正在运行时,我没有注意到任何延迟问题。

例如,如果每个节点有1TB的数据(淘气!),那么升级需要重写跨多个文件的所有1TB数据。读取这些数据的速度很慢,可能需要几天。

:作为sstables是不可变的,并且由于在升级过程中正在备份是通过创建一个硬链接到的SSTable文件,那么你将增加一倍的磁盘空间使用量。因此,如果需要释放空间,请注意磁盘空间并删除快照,特别是如果您的节点使用超过50%的磁盘空间来存储数据。

相关问题