2013-07-10 104 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%的磁盤空間來存儲數據。

相關問題