Cassandra
Cassandra 寫(太?)大分區
我有一個 Cassandra 集群已經執行了很長一段時間(幾個月),並且正如預期的那樣,它每天都在消耗大量數據。
在過去的幾天裡,集群一直出現問題,因為其中一個節點不斷崩潰,我在日誌中看不到太多。
突出的一件事是以下警告,但我現在確定它是否相關:
insufficient space to compact all requested files. 846201.56MB required
這比可用的要多得多。儘管如此,即使有足夠的磁碟來支持這種壓縮,也似乎過度了,不是嗎?
有誰知道我的問題是什麼?
感謝您的關注。
預設情況下,Cassandra 使用
SizeTieredCompactionStrategy
將幾個類似大小的文件(預設為 4 個)壓縮成更大的文件。這些文件包含多個分區,因此大文件大小不是寬分區的必要標誌。當您使用 Cassandra(尤其是
SizeTieredCompactionStrategy
)時,您需要有**大約 50%**的可用磁碟空間,以便 Cassandra 能夠在壓縮期間寫入數據 - 壓縮發生後,舊文件將被刪除。您也可以考慮使用其他壓縮策略,例如
LeveledCompactionStrategy
,但它更適合讀取繁重的工作負載(例如 90% 的操作都是讀取)。